場景的生命周期:
一般情況下一個場景只需要一個層,需要創建自己的層類。一些主要的游戲邏輯代碼都是寫在層中的,場景的生命周期是通過層的生命周期反映出來的,通過重寫層的生命周期函數,可以處理場景不同聲明周期階段的事件。
生命周期函數
(1)ctor構造函數。初始化層的時候調用
(2)onEnter() 進入層時調用 //一般情況下在進入層的這個函數里做一些初始化處理。
(3)onEnterTransitionDidFinish()進入層而且過渡動畫結束時調用
(4)onExit()退出層時調用 //一般情況下在推出層的這個函數釋放一些資源,
(5)onExitTransitionDidStart()退出層且開始過渡動畫時調用
層繼承於節點,這些生命周期函數根本上是從Node繼承而來。事實上所有Node對象都有這些函數,只要是繼承這些類都可以重寫這些函數,來處理這些對象的不同聲明周期階段事件。
例子:
1 //初始化構造函數 2 var HelloWorldLayer = cc.Layer.extend({ 3 ctor:function(){ 4 this._super(); 5 cc.log("HelloWorldLayer init"); 6 7 }, 8 9 //即將進入層時調用 10 onEnter : function () { 11 this._super(); 12 cc.log("HelloWorldLayer onEnter"); 13 14 }, 15 16 //已經進入層時調用 17 onEnterTransitionDidFinish : function () { 18 this._super(); 19 cc.log("HelloWorldLayer onEnterTransitionDidFinish"); 20 21 }, 22 23 //即將退出層時調用 24 onExit : function () { 25 this._super(); 26 cc.log("HelloWorldLayer onExit"); 27 28 }, 29 30 //已經退出層時調用 31 onExitTransitionDidFinish : function () { 32 this._super(); 33 cc.log("HelloWorldLayer onExitTransitionDidFinish"); 34 35 } 36 });
