Cocos Creator 脚本执行顺序(摘自官方文档)
来源:互联网 发布:淘宝用户等级划分 编辑:程序博客网 时间:2024/05/19 04:06
脚本执行顺序
完善的脚本执行顺序控制将在新版本中添加,目前请使用下面的原则控制脚本执行顺序:
使用统一的控制脚本来初始化其他脚本
一般我都会有一个 Game.js
的脚本作为总的控制脚本,假如我还有 Player.js
, Enemy.js
, Menu.js
三个组件,那么他们的初始化过程是这样的:
// Game.jsconst Player = require('Player');const Enemy = require('Enemy');const Menu = require('Menu');cc.Class({ extends: cc.Component, properties: { player: Player, enemy: Enemy, menu: Menu }, onLoad: function () { this.player.init(); this.enemy.init(); this.menu.init(); }});
其中在 Player.js
, Enemy.js
和 Menu.js
中需要实现 init
方法,并将初始化逻辑放进去。这样我们就可以保证 Player, Enemy 和 Menu 的初始化顺序。
在 Update 中用自定义方法控制更新顺序
同理如果要保证以上三个脚本的每帧更新顺序,我们也可以将分散在每个脚本里的 update
替换成自己定义的方法:
// Player.js updatePlayer: function (dt) { // do player update }
然后在 Game.js
脚本的 update
里调用这些方法:
// Game.js update: function (dt) { this.player.updatePlayer(dt); this.enemy.updateEnemy(dt); this.menu.updateMenu(dt); }
控制同一个节点上的组件执行顺序
在同一个节点上的组件脚本执行顺序,是可以通过组件在 属性检查器 里的排列顺序来控制的。排列在上的组件会先于排列在下的组件执行。我们可以通过组件右上角的齿轮按钮里的 Move Up
和 Move Down
菜单来调整组件的排列顺序和执行顺序。
假如我们有两个组件 CompA 和 CompB,他们的内容分别是:
// CompA.jscc.Class({ extends: cc.Component, // use this for initialization onLoad: function () { cc.log('CompA onLoad!'); }, start: function () { cc.log('CompA start!'); }, // called every frame, uncomment this function to activate update callback update: function (dt) { cc.log('CompA update!'); },});// CompB.jscc.Class({ extends: cc.Component, // use this for initialization onLoad: function () { cc.log('CompB onLoad!'); }, start: function () { cc.log('CompB start!'); }, // called every frame, uncomment this function to activate update callback update: function (dt) { cc.log('CompB update!'); },});
组件顺序 CompA 在 CompB 上面时,输出:
CompA onLoad!CompB onLoad!CompA start!CompB start!CompA update!CompB update!
在 属性检查器 里通过 CompA 组件右上角齿轮菜单里的 Move Down
将 CompA 移到 CompB 下面后,输出:
CompB onLoad!CompA onLoad!CompB start!CompA start!CompB update!CompA update!
0 0
- Cocos Creator 脚本执行顺序(摘自官方文档)
- Cocos Creator 模块化脚本(摘自官方文档)
- Cocos Creator 插件脚本(摘自官方文档)
- Cocos Creator 动作列表(摘自官方文档)
- Cocos Creator 使用计时器(摘自官方文档)
- Cocos Creator 网络接口(摘自官方文档)
- Cocos Creator 创建和销毁节点(摘自官方文档)
- Cocos Creator 访问节点和组件(摘自官方文档)
- Cocos Creator 常用节点和组件接口(摘自官方文档)
- Cocos Creator 使用 cc.Class 声明类型(摘自官方文档)
- Cocos Creator 生命周期回调(摘自官方文档)
- Cocos Creator 加载和切换场景(摘自官方文档)
- Cocos Creator 监听和发射事件(摘自官方文档)
- Cocos Creator 系统内置事件(摘自官方文档)
- Cocos Creator 玩家输入事件(摘自官方文档)
- Cocos Creator 中使用动作系统(摘自官方文档)
- Cocos Creator 使用对象池(摘自官方文档)
- Cocos Creator 获取和加载资源(摘自官方文档)
- Python 编程思想 —— 可迭代对象(iterables)
- Count Univalue Subtrees
- 开启个人博客(markdown真是一个强大的工具)
- Android学习------Dimens文件生成
- string 转timestamp
- Cocos Creator 脚本执行顺序(摘自官方文档)
- 如何学好C语言
- POJ1287Networking(最小生成树)
- 网易视频云:用代码讲一个程序猿的爱情故事
- Cocos Creator 网络接口(摘自官方文档)
- 操作系统图形界面发展史(1981-2009)
- mkdir -p的含义
- 模板模式 Template Pattern
- 自己写一个简单通用的Makefile