生命周期順序流程
init()
初始化布景層調(diào)用文虏,在類初始化時(shí)侣诺,僅會(huì)調(diào)用一次。
onEnter()
進(jìn)入布景層時(shí)調(diào)用氧秘,可能會(huì)發(fā)生多次年鸳。
Cocos2dx類似于ObjectC一樣,有兩種方式來申請(qǐng)內(nèi)存創(chuàng)建對(duì)象丸相,一種是靜態(tài)函數(shù)create()
搔确,一種是在自身的init()
中,在這兩種函數(shù)中申請(qǐng)內(nèi)存創(chuàng)建對(duì)象能讓程序正常運(yùn)行灭忠,但是當(dāng)對(duì)象將要去展現(xiàn)或被添加到另一個(gè)容器時(shí)膳算,它會(huì)調(diào)用onEnter()
函數(shù),所以最好不要在onEnter()
中做內(nèi)存方面的操作更舞。
onEnterTransitionDidFinish()
進(jìn)入布景層且過渡動(dòng)畫結(jié)束時(shí)調(diào)用
onExit()
退出布景層時(shí)調(diào)用
onExitTransitionDidStart()
退出布景層且開始過渡動(dòng)畫時(shí)調(diào)用
clearup()
布景層對(duì)象被清除時(shí)調(diào)用畦幢,整個(gè)布景層銷毀時(shí)調(diào)用坎吻。
總結(jié)
進(jìn)入布景層時(shí):init()
->onEnter()
->onEnterTransitionDidFinish()
退出布景層時(shí):onExit()
->onExitTransitionDidStart()
->init()
onEnter
和onExit
在Lua中不會(huì)因?yàn)楣?jié)點(diǎn)的add
和remove
而直接被調(diào)用缆蝉, 當(dāng)子節(jié)點(diǎn)被父節(jié)點(diǎn)的add
和remove
時(shí),會(huì)發(fā)送enter
和exit
的消息,所以需要初始化節(jié)點(diǎn)的時(shí)候刊头,監(jiān)聽消息并在收到消息后調(diào)用onEnter
或onExit
黍瞧。