七弈智慧• 工作室

Cocos Creator自适应宽度组件教程:ScaleWithParentWidth

2025-05-22 14:58:45 阅读(518)

当使用Cocos Creator制作游戏或应用时,经常需要根据上级节点的宽度自动调整子节点的大小。这通常用于创建自适应UI元素,以确保它们在不同屏幕尺寸上都能正常显示。在这篇文章中,我们将学习如何创建一个Cocos Creator组件,使子节点的宽度根据父节点的宽度进行等比例缩放,并设置最大缩放比例以及延时执行。

我们将创建一个名为ScaleWithParentWidth的组件,该组件可附加到需要自适应宽度的节点上。以下是创建该组件的步骤:

创建组件

首先,在Cocos Creator编辑器中创建一个名为ScaleWithParentWidth的组件。你可以按照以下步骤操作:

  1. 打开Cocos Creator编辑器并打开你的项目。
  2. 在左侧资源管理器中,选择一个节点,你想要使其自适应其父节点的宽度。
  3. 在右侧属性检查器中,点击“添加组件”按钮,然后选择“New Script”。
  4. 将脚本命名为ScaleWithParentWidth或你喜欢的任何名称。

编写组件代码

打开刚刚创建的脚本,并将以下代码粘贴到脚本中:

javascript
const { ccclass, property } = cc._decorator; @ccclass export default class ScaleWithParentWidth extends cc.Component { @property({ type: cc.Node, tooltip: '参考节点,如果为空则默认为父节点', }) parentReferenceNode: cc.Node | null = null; @property({ type: cc.Float, tooltip: '缩放比例的限制值,不应超过此值', }) maxScale: number = 1; // 根据需要设置最大缩放比例 @property({ type: cc.Float, tooltip: '延时执行时间,单位为秒', }) delayTime: number = 0.1; // 根据实际需要调整延时时间 onLoad() { this.scheduleOnce(this.scaleWithParentWidth, this.delayTime); } scaleWithParentWidth() { if (!this.parentReferenceNode) { this.parentReferenceNode = this.node.parent; if (!this.parentReferenceNode) { console.warn('未设置参考节点并且没有找到父节点。'); return; } } const parentWidth = this.parentReferenceNode.width; const scale = parentWidth / this.node.width; // 添加条件判断,确保缩放比例不超过最大限制值 if (scale <= this.maxScale) { this.node.scaleX = scale; this.node.scaleY = scale; } else { console.warn('缩放比例超过最大限制值,不进行缩放。'); } } }

在节点上使用组件

现在,你可以将ScaleWithParentWidth组件附加到任何需要自适应宽度的节点上。在编辑器中,选择目标节点,然后在属性检查器中找到刚刚添加的组件。你可以设置parentReferenceNode属性以指定参考节点(如果为空,则默认为父节点),并设置maxScale属性以限制最大缩放比例。此外,你还可以根据需要设置delayTime属性,以延时执行缩放操作。

这个组件将在节点加载后自动执行,根据父节点的宽度调整节点的大小,确保它适应不同屏幕尺寸。同时,它会检查缩放比例是否超过了设置的最大值,并在控制台中输出警告消息,以便你及时发现和调整问题。

通过创建ScaleWithParentWidth组件,你可以轻松实现自适应宽度的UI元素,提高游戏或应用在不同设备上的适应性。这对于构建具有响应性的用户界面非常有用,让你的项目在各种屏幕上都能够提供出色的用户体验。

接口页面--全局数据:

site-> {"id":1,"name":"七弈智慧","domain":"doc.7yi.link","email":"13346163791@qq.com","wx":null,"icp":"浙ICP备2023022652号-1","code":"","json":{"siteSubtitle":"• 工作室"},"title":"七弈国象-连接七弈 智慧人生","keywords":"国际象棋,棋谱,pgn,","description":"国际象棋站","createdAt":null,"updatedAt":"2025-04-14T01:07:55.000Z","template":null,"appid":null,"secret":null}

111-->• 工作室

nav-> [{"id":13,"pid":0,"name":"日常工作杂记","pinyin":"richanggongzuozaji","path":"/richanggongzuozaji","sort":4,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0","children":[{"id":14,"pid":13,"name":"前端","pinyin":"qianduan","path":"/richanggongzuozaji/qianduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":15,"pid":13,"name":"后端","pinyin":"houduan","path":"/cmsgaijin/houduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":16,"pid":13,"name":"总结","pinyin":"zongjie","path":"/kaifariji/zongjie","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":17,"pid":13,"name":"工作计划","pinyin":"gongzuojihua","path":"/cmsgaijin/gongzuojihua","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":22,"pid":13,"name":"炒股养棋","pinyin":"chaoguyangqi","path":"/chaoguyangqi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":23,"pid":13,"name":"cx13","pinyin":"cx13","path":"/kaifariji/cx13","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":24,"pid":13,"name":"时限学堂","pinyin":"shixianxuetang","path":"/richanggongzuozaji/shixianxuetang","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":25,"pid":13,"name":"运营","pinyin":"yunying","path":"/richanggongzuozaji/yunying","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]},{"id":18,"pid":0,"name":"国象练习","pinyin":"guoxianglianxi","path":"/guoxianglianxi","sort":3,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":19,"pid":0,"name":"信息公布","pinyin":"xinxigongbu","path":"/xinxigongbu","sort":6,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0","children":[{"id":20,"pid":19,"name":"业界消息","pinyin":"yejiexiaoxi","path":"/qiyiguoxiang/yejiexiaoxi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":21,"pid":19,"name":"七弈动态","pinyin":"qiyidongtai","path":"/xinxigongbu/qiyidongtai","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]}]

category-> [{"id":13,"pid":0,"name":"日常工作杂记","pinyin":"richanggongzuozaji","path":"/richanggongzuozaji","sort":4,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0","children":[{"id":14,"pid":13,"name":"前端","pinyin":"qianduan","path":"/richanggongzuozaji/qianduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":15,"pid":13,"name":"后端","pinyin":"houduan","path":"/cmsgaijin/houduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":16,"pid":13,"name":"总结","pinyin":"zongjie","path":"/kaifariji/zongjie","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":17,"pid":13,"name":"工作计划","pinyin":"gongzuojihua","path":"/cmsgaijin/gongzuojihua","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":22,"pid":13,"name":"炒股养棋","pinyin":"chaoguyangqi","path":"/chaoguyangqi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":23,"pid":13,"name":"cx13","pinyin":"cx13","path":"/kaifariji/cx13","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":24,"pid":13,"name":"时限学堂","pinyin":"shixianxuetang","path":"/richanggongzuozaji/shixianxuetang","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":25,"pid":13,"name":"运营","pinyin":"yunying","path":"/richanggongzuozaji/yunying","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]},{"id":14,"pid":13,"name":"前端","pinyin":"qianduan","path":"/richanggongzuozaji/qianduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":15,"pid":13,"name":"后端","pinyin":"houduan","path":"/cmsgaijin/houduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":16,"pid":13,"name":"总结","pinyin":"zongjie","path":"/kaifariji/zongjie","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":17,"pid":13,"name":"工作计划","pinyin":"gongzuojihua","path":"/cmsgaijin/gongzuojihua","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":18,"pid":0,"name":"国象练习","pinyin":"guoxianglianxi","path":"/guoxianglianxi","sort":3,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":19,"pid":0,"name":"信息公布","pinyin":"xinxigongbu","path":"/xinxigongbu","sort":6,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0","children":[{"id":20,"pid":19,"name":"业界消息","pinyin":"yejiexiaoxi","path":"/qiyiguoxiang/yejiexiaoxi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":21,"pid":19,"name":"七弈动态","pinyin":"qiyidongtai","path":"/xinxigongbu/qiyidongtai","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]},{"id":20,"pid":19,"name":"业界消息","pinyin":"yejiexiaoxi","path":"/qiyiguoxiang/yejiexiaoxi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":21,"pid":19,"name":"七弈动态","pinyin":"qiyidongtai","path":"/xinxigongbu/qiyidongtai","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":22,"pid":13,"name":"炒股养棋","pinyin":"chaoguyangqi","path":"/chaoguyangqi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":23,"pid":13,"name":"cx13","pinyin":"cx13","path":"/kaifariji/cx13","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":24,"pid":13,"name":"时限学堂","pinyin":"shixianxuetang","path":"/richanggongzuozaji/shixianxuetang","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":25,"pid":13,"name":"运营","pinyin":"yunying","path":"/richanggongzuozaji/yunying","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]

friendlink-> [{"id":1,"title":"七弈国象首页","link":"https://www.7yi.link","sort":0,"createdAt":"2023-07-22T14:59:55.000Z"}]

base_url-> /public/template/default

frag--->{"record":"<p style=\"text-align: center;\"><a href=\"http://beian.miit.gov.cn/\" target=\"_blank\" rel=\"noopener\">浙ICP备2023022652号-1</a></p>","footer-guanyu":"","footer-7yi":"","footer-chess":"","footer-fe":"","chanyue-introduce":"<p>七弈国象:专注于国际象棋开局与战术学习的网站</p>\n<ul>\n<li>国际象棋相关工具开发:<br>\n<ul>\n<li>记谱训练</li>\n<li>识谱工具</li>\n</ul>\n</li>\n<li>国象相关产品\n<ul>\n<li>记录本</li>\n</ul>\n</li>\n<li>电商网站\n<ul>\n<li>畅享一三</li>\n</ul>\n</li>\n<li>通用后台<br>\n<ul>\n<li>7Link通用后台开发系统&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</li>\n</ul>\n</li>\n</ul>","copyright":"<p style=\"text-align: center;\">杭州七弈智慧科技有限公司版权所有</p>","ad":"<p style=\"text-align: center;\"><a href=\"https://7yi.link/stock/chess/web-mobile/\" target=\"_blank\" rel=\"noopener\"> <img style=\"display: block; margin-left: auto; margin-right: auto; max-width: 100%; height: auto;\" src=\"/public/uploads/default/2023/09/21/1695286791855_mceu_83563456911695286788809.png.png\"> </a></p>\n<p style=\"text-align: center;\"><a href=\"https://7yi.link/stock/chess/web-mobile/\" target=\"_blank\" rel=\"noopener\">开局树学习</a></p>"}

tag--->[{"id":8,"name":"双马防御","path":"shuangmafangyu"},{"id":7,"name":"开发","path":"kaifa"},{"id":6,"name":"伦敦体系","path":"lunduntixi"},{"id":5,"name":"俄罗斯防御","path":"eluosifangyu"},{"id":1,"name":"cms","path":"cms"}]

-----------

position------>[{"id":13,"pid":0,"name":"日常工作杂记","pinyin":"richanggongzuozaji","path":"/richanggongzuozaji","sort":4,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0","children":[{"id":14,"pid":13,"name":"前端","pinyin":"qianduan","path":"/richanggongzuozaji/qianduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":15,"pid":13,"name":"后端","pinyin":"houduan","path":"/cmsgaijin/houduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":16,"pid":13,"name":"总结","pinyin":"zongjie","path":"/kaifariji/zongjie","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":17,"pid":13,"name":"工作计划","pinyin":"gongzuojihua","path":"/cmsgaijin/gongzuojihua","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":22,"pid":13,"name":"炒股养棋","pinyin":"chaoguyangqi","path":"/chaoguyangqi","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":23,"pid":13,"name":"cx13","pinyin":"cx13","path":"/kaifariji/cx13","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":24,"pid":13,"name":"时限学堂","pinyin":"shixianxuetang","path":"/richanggongzuozaji/shixianxuetang","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},{"id":25,"pid":13,"name":"运营","pinyin":"yunying","path":"/richanggongzuozaji/yunying","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]},{"id":14,"pid":13,"name":"前端","pinyin":"qianduan","path":"/richanggongzuozaji/qianduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"}]

navSub------>{"cate":{"id":14,"pid":13,"name":"前端","pinyin":"qianduan","path":"/richanggongzuozaji/qianduan","sort":0,"target":"0","status":"0","list_view":"list.html","article_view":"article.html","seo_title":"","seo_keywords":"","seo_description":"","type":"0"},"id":14}

article------>{"id":46,"cid":14,"sub_cid":null,"title":"Cocos Creator自适应宽度组件教程:ScaleWithParentWidth","short_title":"","tag_id":"","attr":"","seo_title":"","seo_keywords":"","seo_description":"","source":"","author":"","description":"当使用Cocos Creator制作游戏或应用时,经常需要根据上级节点的宽度自动调整子节点的大小。这通常用于创建自适应UI元素,以确保它们在不同屏幕尺寸上都能正常显示。在这篇文章中,我们将学习如何创建一个Cocos Creator组件,使子节点的宽度根据父节点的宽度进行等比例缩放,并设置最大缩放比例以及延时执行。","img":null,"content":"<p>当使用Cocos Creator制作游戏或应用时,经常需要根据上级节点的宽度自动调整子节点的大小。这通常用于创建自适应UI元素,以确保它们在不同屏幕尺寸上都能正常显示。在这篇文章中,我们将学习如何创建一个Cocos Creator组件,使子节点的宽度根据父节点的宽度进行等比例缩放,并设置最大缩放比例以及延时执行。</p>\n<p>我们将创建一个名为<code>ScaleWithParentWidth</code>的组件,该组件可附加到需要自适应宽度的节点上。以下是创建该组件的步骤:</p>\n<h3>创建组件</h3>\n<p>首先,在Cocos Creator编辑器中创建一个名为<code>ScaleWithParentWidth</code>的组件。你可以按照以下步骤操作:</p>\n<ol>\n<li>打开Cocos Creator编辑器并打开你的项目。</li>\n<li>在左侧资源管理器中,选择一个节点,你想要使其自适应其父节点的宽度。</li>\n<li>在右侧属性检查器中,点击&ldquo;添加组件&rdquo;按钮,然后选择&ldquo;New Script&rdquo;。</li>\n<li>将脚本命名为<code>ScaleWithParentWidth</code>或你喜欢的任何名称。</li>\n</ol>\n<h3>编写组件代码</h3>\n<p>打开刚刚创建的脚本,并将以下代码粘贴到脚本中:</p>\n<div class=\"bg-black rounded-md mb-4\">\n<div class=\"flex items-center relative text-gray-200 bg-gray-800 gizmo:dark:bg-token-surface-primary px-4 py-2 text-xs font-sans justify-between rounded-t-md\">javascript<button class=\"flex ml-auto gizmo:ml-0 gap-2 items-center\">Copy code</button></div>\n<div class=\"p-4 overflow-y-auto\"><code class=\"!whitespace-pre hljs language-javascript\"><span class=\"hljs-keyword\">const</span> { ccclass, property } = cc.<span class=\"hljs-property\">_decorator</span>;\n\n@cc<span class=\"hljs-keyword\">class</span>\n<span class=\"hljs-title class_\">export</span> <span class=\"hljs-keyword\">default</span> <span class=\"hljs-keyword\">class</span> <span class=\"hljs-title class_\">ScaleWithParentWidth</span> <span class=\"hljs-keyword\">extends</span> <span class=\"hljs-title class_ inherited__\">cc.Component</span> {\n @<span class=\"hljs-title function_\">property</span>({\n <span class=\"hljs-attr\">type</span>: cc.<span class=\"hljs-property\">Node</span>,\n <span class=\"hljs-attr\">tooltip</span>: <span class=\"hljs-string\">'参考节点,如果为空则默认为父节点'</span>,\n })\n <span class=\"hljs-attr\">parentReferenceNode</span>: cc.<span class=\"hljs-property\">Node</span> | <span class=\"hljs-literal\">null</span> = <span class=\"hljs-literal\">null</span>;\n\n @<span class=\"hljs-title function_\">property</span>({\n <span class=\"hljs-attr\">type</span>: cc.<span class=\"hljs-property\">Float</span>,\n <span class=\"hljs-attr\">tooltip</span>: <span class=\"hljs-string\">'缩放比例的限制值,不应超过此值'</span>,\n })\n <span class=\"hljs-attr\">maxScale</span>: number = <span class=\"hljs-number\">1</span>; <span class=\"hljs-comment\">// 根据需要设置最大缩放比例</span>\n\n @<span class=\"hljs-title function_\">property</span>({\n <span class=\"hljs-attr\">type</span>: cc.<span class=\"hljs-property\">Float</span>,\n <span class=\"hljs-attr\">tooltip</span>: <span class=\"hljs-string\">'延时执行时间,单位为秒'</span>,\n })\n <span class=\"hljs-attr\">delayTime</span>: number = <span class=\"hljs-number\">0.1</span>; <span class=\"hljs-comment\">// 根据实际需要调整延时时间</span>\n\n <span class=\"hljs-title function_\">onLoad</span>() {\n <span class=\"hljs-variable language_\">this</span>.<span class=\"hljs-title function_\">scheduleOnce</span>(<span class=\"hljs-variable language_\">this</span>.<span class=\"hljs-property\">scaleWithParentWidth</span>, <span class=\"hljs-variable language_\">this</span>.<span class=\"hljs-property\">delayTime</span>);\n }\n\n <span class=\"hljs-title function_\">scaleWithParentWidth</span>() {\n <span class=\"hljs-keyword\">if</span> (!<span class=\"hljs-variable language_\">this</span>.<span class=\"hljs-property\">parentReferenceNode</span>) {\n <span class=\"hljs-variable language_\">this</span>.<span class=\"hljs-property\">parentReferenceNode</span> = <span class=\"hljs-variable language_\">this</span>.<span class=\"hljs-property\">node</span>.<span class=\"hljs-property\">parent</span>;\n <span class=\"hljs-keyword\">if</span> (!<span class=\"hljs-variable language_\">this</span>.<span class=\"hljs-property\">parentReferenceNode</span>) {\n <span class=\"hljs-variable language_\">console</span>.<span class=\"hljs-title function_\">warn</span>(<span class=\"hljs-string\">'未设置参考节点并且没有找到父节点。'</span>);\n <span class=\"hljs-keyword\">return</span>;\n }\n }\n\n <span class=\"hljs-keyword\">const</span> parentWidth = <span class=\"hljs-variable language_\">this</span>.<span class=\"hljs-property\">parentReferenceNode</span>.<span class=\"hljs-property\">width</span>;\n <span class=\"hljs-keyword\">const</span> scale = parentWidth / <span class=\"hljs-variable language_\">this</span>.<span class=\"hljs-property\">node</span>.<span class=\"hljs-property\">width</span>;\n\n <span class=\"hljs-comment\">// 添加条件判断,确保缩放比例不超过最大限制值</span>\n <span class=\"hljs-keyword\">if</span> (scale &lt;= <span class=\"hljs-variable language_\">this</span>.<span class=\"hljs-property\">maxScale</span>) {\n <span class=\"hljs-variable language_\">this</span>.<span class=\"hljs-property\">node</span>.<span class=\"hljs-property\">scaleX</span> = scale;\n <span class=\"hljs-variable language_\">this</span>.<span class=\"hljs-property\">node</span>.<span class=\"hljs-property\">scaleY</span> = scale;\n } <span class=\"hljs-keyword\">else</span> {\n <span class=\"hljs-variable language_\">console</span>.<span class=\"hljs-title function_\">warn</span>(<span class=\"hljs-string\">'缩放比例超过最大限制值,不进行缩放。'</span>);\n }\n }\n}\n</code></div>\n</div>\n<h3>在节点上使用组件</h3>\n<p>现在,你可以将<code>ScaleWithParentWidth</code>组件附加到任何需要自适应宽度的节点上。在编辑器中,选择目标节点,然后在属性检查器中找到刚刚添加的组件。你可以设置<code>parentReferenceNode</code>属性以指定参考节点(如果为空,则默认为父节点),并设置<code>maxScale</code>属性以限制最大缩放比例。此外,你还可以根据需要设置<code>delayTime</code>属性,以延时执行缩放操作。</p>\n<p>这个组件将在节点加载后自动执行,根据父节点的宽度调整节点的大小,确保它适应不同屏幕尺寸。同时,它会检查缩放比例是否超过了设置的最大值,并在控制台中输出警告消息,以便你及时发现和调整问题。</p>\n<p>通过创建<code>ScaleWithParentWidth</code>组件,你可以轻松实现自适应宽度的UI元素,提高游戏或应用在不同设备上的适应性。这对于构建具有响应性的用户界面非常有用,让你的项目在各种屏幕上都能够提供出色的用户体验。</p>","status":0,"pv":518,"link":"","createdAt":"2023-10-03 05:37:52","updatedAt":"2025-05-22 14:58:45","field":{},"tags":[]}

article.tags------>[]

news------>[{"id":252,"title":"ollama运行命令","short_title":"","img":"","createdAt":"2024-11-23T07:55:32.000Z","description":"","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":173,"title":"新网站上线的后续工作预告","short_title":"","img":"","createdAt":"2024-04-11T07:03:05.000Z","description":"","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":154,"title":"Bootstrap框架的css定义说明 ","short_title":"","img":"","createdAt":"2024-01-28T05:11:47.000Z","description":"","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":125,"title":"界面设计要求","short_title":"","img":"/public/uploads/default/2023/12/30/1703937436442_origin-mceclip0png","createdAt":"2023-12-30T08:21:24.000Z","description":"","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":122,"title":"行棋记录验证正则表达式详解","short_title":"","img":"","createdAt":"2023-12-08T12:36:00.000Z","description":"","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":121,"title":"表格数据清洗","short_title":"","img":"","createdAt":"2023-12-07T02:46:21.000Z","description":"","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":114,"title":"开发依赖库说明以及项目 配置信息说明","short_title":"","img":"","createdAt":"2023-11-29T01:23:34.000Z","description":"","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":113,"title":"编辑前端项目问题","short_title":"","img":"","createdAt":"2023-11-28T04:57:00.000Z","description":"","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":112,"title":"在线编辑excel","short_title":"","img":"","createdAt":"2023-11-27T09:15:03.000Z","description":"","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":103,"title":"表格结构识别结果说明文档","short_title":"","img":"","createdAt":"2023-11-10T10:00:26.000Z","description":"","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"}]

hot------>[{"id":46,"title":"Cocos Creator自适应宽度组件教程:ScaleWithParentWidth","path":"/cmsgaijin/qianduan"},{"id":100,"title":"CMS系统升级到最新版","path":"/cmsgaijin/qianduan"},{"id":74,"title":"微信小程序的一些问题","path":"/cmsgaijin/qianduan"},{"id":72,"title":"棋谱识别开发记录","path":"/cmsgaijin/qianduan"},{"id":112,"title":"在线编辑excel","path":"/cmsgaijin/qianduan"},{"id":50,"title":"cocos creator发布成微信小程序(非小游戏)","path":"/cmsgaijin/qianduan"},{"id":122,"title":"行棋记录验证正则表达式详解","path":"/cmsgaijin/qianduan"},{"id":17,"title":"七弈国象-研发记录(https://doc.7yi.link)上线","path":"/cmsgaijin/qianduan"},{"id":121,"title":"表格数据清洗","path":"/cmsgaijin/qianduan"},{"id":67,"title":"对禅悦CMS的代码显示功能进行个性化,让它变成自己习惯的风格","path":"/cmsgaijin/qianduan"}]

imgs------>[{"id":125,"title":"界面设计要求","short_title":"","img":"/public/uploads/default/2023/12/30/1703937436442_origin-mceclip0png","createdAt":"2023-12-30T08:21:24.000Z","description":"","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":100,"title":"CMS系统升级到最新版","short_title":"","img":"/public/uploads/default/2023/11/09/1699532940524_origin-mceclip0png","createdAt":"2023-11-09T12:02:37.000Z","description":"明空的版本更新很快,所以抽时间把版本更新到最新版","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":78,"title":"一次快乐的bug修改","short_title":"","img":"/public/uploads/default/2023/11/01/1698823694419_mceclip0.png.png","createdAt":"2023-10-31T23:26:39.000Z","description":"根据标识的位置直接进行了修正。非常感谢","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":75,"title":"首个用户反馈-来自Mr.上官","short_title":"","img":"/public/uploads/default/2023/10/29/1698545436900_mceclip0.jpg.jpg","createdAt":"2023-10-28T18:09:35.000Z","description":"进来以后,并没有感到自己注册成功,","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":74,"title":"微信小程序的一些问题","short_title":"","img":"/public/uploads/default/2023/10/27/1698441878047_mceclip0.jpg.jpg","createdAt":"2023-10-27T13:19:45.000Z","description":"\ndoc网站\n\ndoc网站中的导语不要展现出来了,对于现在快阅读的时代,已经不实用了\n广告宽度没有限制,影响页面内容页面的宽度\n\n\n小程序\n\n微信用户原有接口小程序不许再读取了,提供了让用户修改资料的方式来读取\n用户金币显示先取消,相关逻辑还没上线\n修改资料有问题,会错误判断资料没有修改\n按钮要配上声音\n\n上面这个只盖住了一半\n\n这个需要把动画加上\n完成开局以后在小程序中数据无法提交\nipad界面 我的 文字显示太小\n用户进入就注册,做到无感注册\n用户资料修改的web小程序内置版\n\n\n \n","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":72,"title":"棋谱识别开发记录","short_title":"","img":"/public/uploads/default/2023/10/25/1698207506409_mceclip0.png.png","createdAt":"2023-10-24T18:22:22.000Z","description":"一 准备工作\n\n安装Python\n安装OpenCV\n//更新一下pip 在不翻的情况下,更新不成功\n\npython.exe -m pip install --upgrade pip\n\n//安装一下openCV python版本\npip install opencv-python\n\n安装Tesseract\n\n\n// 安装地址\nhttps://github.com/UB-Mannheim/tesseract/wiki\n\n//安装的时候,注意要选择复选中文的相关库\n\n//在系统环境变量里添加路径\n\nC:\\Pr","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":67,"title":"对禅悦CMS的代码显示功能进行个性化,让它变成自己习惯的风格","short_title":"","img":"/public/uploads/default/2023/10/13/1697179493540_mceclip1.png.png","createdAt":"2023-10-12T22:41:43.000Z","description":"1 要显示行号2 要显示代码复制按钮3 要背景黑色","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":61,"title":"如何在文章里插入其它网站的信息","short_title":"","img":"/public/uploads/default/2023/10/11/1696985332888_mceclip0.png.png","createdAt":"2023-10-10T16:46:42.000Z","description":" ","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":58,"title":"在微信开发工具调试小程序,一直拿不到用户信息","short_title":"","img":"https://res.wx.qq.com/op_res/rm8CjueDGoqfBrYaFIm5tNS8j1LciYO0i-XLEbXGAayNvR1VI_TVu62YeNPLSHICbMP6cmjX_dWagWQdRjXY8w","createdAt":"2023-10-09T19:21:44.000Z","description":"读取到的用户信息一直是 微信用户,女原因:2023年8月,在用户隐私协议中没有设置相关信息读取","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"},{"id":47,"title":"cocos creator使用免费的图片打包工具 free texture packer","short_title":"","img":"/public/uploads/default/2023/10/04/1696407725293_mceclip0.png.png","createdAt":"2023-10-04T00:16:52.000Z","description":"简介:\ncocos creator的图集功能很不错,打包的软件一般都是收费的,找到一个网页版的打包网站 free textrue packer网站地址:http://free-tex-packer.com/app/","pinyin":"qianduan","name":"前端","path":"/cmsgaijin/qianduan"}]

pre------>{"id":44,"title":"完成了小程序版本的体验版","name":"前端","path":"/cmsgaijin/qianduan"}

next------>{"id":47,"title":"cocos creator使用免费的图片打包工具 free texture packer","name":"前端","path":"/cmsgaijin/qianduan"}

E