层(Layer)的生命周期函数:
(1)ctor构造函数。初始化层时调用;
(2)onEnter(),进入层时调用;
(3)onEnterTransitionDidFinish()。进入层而且过渡动画结束时调用;
(4)onExit()。退出层时调用;
(5)onExitTransitionDidStart()。退出层而且开始过渡动画时调用;
(6)cleanup()。层对象被清除的时候调用;
当启动启动一个场景的时候,函数的调用顺序是:
init
onEnter
onTransitionDidFinish
当在多场景切换生命周期的时候,场景的生命周期就会比较复杂,下面有三种情况:
情况1,使用pushScene函数从实现HelloWorld场景进入Setting场景,具体的调用过程是:
情况2,使用replaceScene函数实现从HelloWorld场景进入Setting场景,具体的调用过程是:
情况3,使用popScene函数从实现Setting场景回到HelloWorld场景,具体的调用过程是:
我们发现,情况2比情况1多调用了一个cleanup的函数,这是因为这也说明replaceScene函数会释放场景对象;
还有情况3,从图中可见popScene函数时候调用Setting中cleanup函数,这说明popScene函数会释放Setting场景对象,当回到HelloWorld场景时候并不会调用init()函数,而是调用onEnter函数,因为前面保存了场景不需要重新创建;