Cocos Creator 脚本执行顺序(摘自官方文档)
脚本执行顺序完善的脚本执行顺序控制将在新版本中添加,目前请使用下面的原则控制脚本执行顺序: 使用统一的控制脚本来初始化其他脚本 一般我都会有一个 // Game.js
const Player = require('Player');
const Enemy = 'Enemy');
const Menu = 'Menu');
cc.Class({
extends: cc.Component,properties: {
player: Player,enemy: Enemy,menu: Menu
},onLoad: function () {
this.player.init();
this.enemy.init();
this.menu.init();
}
});
其中在 在 Update 中用自定义方法控制更新顺序 同理如果要保证以上三个脚本的每帧更新顺序,我们也可以将分散在每个脚本里的 // Player.js
updatePlayer: function (dt) {
// do player update
}
然后在 // Game.js
update: function (dt) {
this.player.updatePlayer(dt);
this.enemy.updateEnemy(dt);
this.menu.updateMenu(dt);
}
控制同一个节点上的组件执行顺序 在同一个节点上的组件脚本执行顺序,是可以通过组件在属性检查器里的排列顺序来控制的。排列在上的组件会先于排列在下的组件执行。我们可以通过组件右上角的齿轮按钮里的 假如我们有两个组件 CompA 和 CompB,他们的内容分别是: // CompA.js
cc.Class({
extends: cc.Component,// use this for initialization
onLoad: function () {
cc.log('CompA onLoad!');
},start: function () {
cc.log('CompA start!');
},136); font-style:italic">// called every frame,uncomment this function to activate update callback
update: function (dt) {
cc.log('CompA update!');
},});
// CompB.js
cc.Class({
extends: cc.Component,68)">'CompB onLoad!');
},68)">'CompB start!');
},68)">'CompB update!');
},});
组件顺序 CompA 在 CompB 上面时,输出: CompA onLoad! CompB onLoad! CompA start! CompB start! CompA update! CompB update! 在属性检查器里通过 CompA 组件右上角齿轮菜单里的 CompB onLoad! CompA onLoad! CompB start! CompA start! CompB update! CompA update! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |