版本:2.3.4
參考:
cocos教程:生命周期回調
一 生命周期
二 新建-移除一個商店模塊的過程
三 代碼執行順序
一 生命周期
cocos的cc.Component組件有如下生命周期
- construct 新建時觸發,整個生命周期只會觸發一次
- onLoad 節點激活時觸發,整個生命周期只會觸發一次
- start 節點第一次激活時觸發,在update之前,整個生命周期只會觸發一次
- update 動畫、物理、粒子等渲染前執行,每幀調用
- lateUpdate 動畫、物理、粒子等渲染后執行,每幀調用
- onDestroy 銷毀時執行,整個生命周期只會觸發一次
- onEnable 組件enabled從false變為true,或者節點active從false變為true觸發
- onDisable 組件enabled從true變為false,或者節點active從ture變為false觸發
二 新建-移除一個商店模塊的過程
現在新建一個商店界面,到移除的過程。
一 新建一個組件商店面板 new ShopPanel()
1. 此時無法通過cc.find等獲取商店里的其他節點
執行:
construct
二 添加組件到舞台 addChild(shopPanel.node)
1.此時可以通過cc.find等獲取商店里的其他節點
執行:
onLoad
onEnable
start
update
lateUpdate
三 組件從舞台移除 removeChild(shopPanel.node)
執行:
onDisable
四 再次添加組件到舞台,addChild(shopPanel.node)
1. onLoad和start不會再觸發。
執行:
onEnable
update
lateUpdate
五 shopPanel.enabled = false
1.不會再調用update,lateUpdate了
執行:
onDisable
六 shopPanel.enabled = true
1.又重新執行update和lateUpdate了
執行:
onEnable
update
lateUpate
七 shopPanel.node.active = false
1. 舞台上不顯示商店面板了
2.不再執行udpate和LateUpdate
2.如果只是想隱藏商店,但是繼續執行update,可以使用shopPanel.node.opacity = 0隱藏,shopPanel.node.opacity = 255顯示
執行:
onDisable
八 shopPanel.node.active = true
1.舞台上顯示商店面板
2.重新執行update和LateUpdate
執行:
onEnable
update
lateUpdate
九 shopPanel.node.destroy
1. destroy調用后不會立即銷毀,在當前邏輯幀更新后統一銷毀。可以通過cc.isValid判斷該組件是否可用。
執行:
onDisable
onDestroy
三 代碼執行順序
一個組件上同時綁定兩個組件,執行順序從上到下