美文网首页
CocosCreator编码贴士:组件生命周期注意事项

CocosCreator编码贴士:组件生命周期注意事项

作者: S_eVent | 来源:发表于2018-05-17 11:03 被阅读0次
    • 编辑器里面如果把一个组件的active设为false的话,在界面上的表现就是选中组件之后,在其"属性编辑器"组件名字边上的单选框对勾没有打上,此时组件在"层级管理器"中是以灰色显示的,界面上也会不可见。此时运行游戏后和挂载在该组件上的cc.Component组件,也就是我们自建的一些js文件代码中的onLoad生命周期钩子是不会被调用的,onLoad生命周期钩子只有此cc.Component组件的node在第一次acitve设为true后才会被调用。这种情况下,由于onLoad一直没有被调用,所以在onLoad中初始化的一些变量在其他方法中就一直是underfined的状态,比如
    cc.Class({
        extends: cc.Component,
        onLoad(){
          this.p = 'hello';
        },
        show(){
            console.log(this.p);//输出undefined
        }
    })
    
    • 切换场景或者手动调用组件的destroy方法后会执行onDestroy生命周期钩子,在此之前还会执行onDisable生命周期钩子,因此,清理工作代码就不需要在onDestroy和onDisable各复制一份了,只需要在onDisable中定义即可。

    • 不论组件的onLoad是否会被调用,只要组件存在于场景上,那么场景加载时(包括preload)该组件的构造方法ctor都会被调用

    相关文章

      网友评论

          本文标题:CocosCreator编码贴士:组件生命周期注意事项

          本文链接:https://www.haomeiwen.com/subject/motbdftx.html