生命周期顺序流程
init()
初始化布景层调用,在类初始化时,仅会调用一次。
onEnter()
进入布景层时调用,可能会发生多次。
Cocos2dx类似于ObjectC一样,有两种方式来申请内存创建对象,一种是静态函数create()
,一种是在自身的init()
中,在这两种函数中申请内存创建对象能让程序正常运行,但是当对象将要去展现或被添加到另一个容器时,它会调用onEnter()
函数,所以最好不要在onEnter()
中做内存方面的操作。
onEnterTransitionDidFinish()
进入布景层且过渡动画结束时调用
onExit()
退出布景层时调用
onExitTransitionDidStart()
退出布景层且开始过渡动画时调用
clearup()
布景层对象被清除时调用,整个布景层销毁时调用。
总结
进入布景层时:init()
->onEnter()
->onEnterTransitionDidFinish()
退出布景层时:onExit()
->onExitTransitionDidStart()
->init()
onEnter
和onExit
在Lua中不会因为节点的add
和remove
而直接被调用, 当子节点被父节点的add
和remove
时,会发送enter
和exit
的消息,所以需要初始化节点的时候,监听消息并在收到消息后调用onEnter
或onExit
。
网友评论