不论官方文档还是demo项目都写的很清楚,enabled 设置为true 调用 onEnable(),否则调用onDisable();
但是当我们实际操作的的时候,却不是这样的,enabled 设置为 false后,后面再设置enable时,不管是false还是true,onEnable()和onDisable()函数都不会调用
问题解决方案就是把两个函数都加个 _ 下划线前缀就可以了,如_onEnable()
,_onDisable()
但是这样做的话脚本里面的onUpdate()函数又失效了。万能解决办法:
_onEnable(){
console.log('onEnable');
Laya.stage.on(Laya.Event.CLICK,this,this.toggleMovestate);
this._onUpdate();
}
_onDisable(){
console.log('onDisable');
cancelAnimationFrame(this.animateId);
}
_onUpdate(){
this.animateId = requestAnimationFrame(this._onUpdate.bind(this));
}