层(Layer)的生命周期函数有如下
init()。初始化层调用。
onEnter()。进入层时候调用。
onEnterTransitionDidFinish()。进入层而且过渡动画结束时候调用。
onExit()。退出层时候调用。
onExitTransitionDidStart()。退出层而且开始过渡动画时候调用。
cleanup()。层对象被清除时候调用。
提示 层(Layer)继承于节点(Node)这些生命周期函数根本上是从Node继承而来。事实上所有Node对象包括场景、层、精灵等都有这些函数只要是子类化这些类都可以重写这些函数来处理这些对象的不同生命周期阶段事件。
我们重写HelloWorld层的中几个生命周期函数代码如下
bool HelloWorld::init() { if( !Layer::init() ) { returnfalse; } log("HelloWorldinit"); ...... returntrue; } void HelloWorld::onEnter() { Layer::onEnter(); log("HelloWorldonEnter"); } voidHelloWorld::onEnterTransitionDidFinish() { Layer::onEnterTransitionDidFinish(); log("HelloWorldonEnterTransitionDidFinish"); } void HelloWorld::onExit() { Layer::onExit(); log("HelloWorldonExit"); } voidHelloWorld::onExitTransitionDidStart() { Layer::onExitTransitionDidStart(); log("HelloWorldonExitTransitionDidStart"); } void HelloWorld::cleanup() { Layer::cleanup(); log("HelloWorldcleanup"); }
注意 在重写层生命周期函数中第一行代码应该是调用父类的函数例如HelloWorld::onEnter()中第一行应该是Layer::onEnter()函数如果不调用父类的函数可能会导致层中动画、动作或计划无法执行。
如果HelloWorld是第一个场景当启动HelloWorld场景时候它的调用顺序如下图所示
《Cocos2d-x实战 C++卷》现已上线各大商店均已开售
京东http://item.jd.com/11584534.html
当当http://product.dangdang.com/23606265.html
互动出版网http://product.china-pub.com/3770734
《Cocos2d-x实战 C++卷》源码及样章下载地址
源码下载地址http://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1
样章下载地址http://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1