对于Node节点的生命周期,也称回调事件的回调。当对节点进行操作时,比如被添加或者移除,它默认都会调用自己的一些事件方法。现在就让我们看看属于它事件的回调方法有哪些,如下所示:
virtual void onEnter(); //被添加到场景中的节点时调用
virtual void onEnterTransitionDidFinish(); //被添加到场景中的节点完成时调用
virtual void onExitTransitionDidStart(); //开始从场景中的节点移除时调用
virtual void onExit(); //从场景中的节点移除完成后调用
virtual void cleanup(); //停止在场景中运行的所有节点状态
以上就是节点的生命周期回调函数。
好,现在让我们来看看这次要如何来测试它。
既然基本的显示类都与节点相关,我又用了LayerColor类来进行测试(不要问我为什么每次测试例子都有LayerColor这个类,哈哈,只是因为我觉得它比较适合和直观,关键的一点就是其实它可以代替精灵的显示从而避免了纹理的使用~不多说了哈,继续继续~)
然后既然是添加与移除,所以我就用了场景的切换来做这次的测试。至于如何能够看得出切换时的状态,其实一开始我是想用一个打印日志的方法来检测节点的状态的,不过好像效果不是很明显,并且没有分割线,在切换的时候可能状态一下字就一大堆,与上一次的状态输出可能混淆了,所以我就选用了微软的一个函数接口MessageBox。这个可以弹出一个小窗口出来,很方便。然后有两个参数,第一个是窗口内容,第二个是窗口的标题。嗯嗯,那现在就来看看测试的内容吧~
第一个测试:进入场景,初始化层并添加,对层的生命周期回调函数进行重写并检测它。我们先看下效果:
通过测试1,我们可以看到Layer1的生命周期回调的方法如下:
进入例子中的Layer1创建的场景:Layer1:init --> Layer1:onEnter --> Layer1:onEnterDidFinish
关闭Layer1场景当前应用程序:Layer1:onExit --> Layer1:cleanup
好,我们再来看看测试2: