CocosCreator 生命周期(组件执行顺序)


版本: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

 

三 代码执行顺序

一个组件上同时绑定两个组件,执行顺序从上到下

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM