码迷,mamicode.com
首页 > 其他好文 > 详细

CocosCreator 生命周期

时间:2020-07-20 13:04:08      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:component   onload   const   ref   rip   点击   新建   激活   调用   

版本: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不会再触发。2. shopPanel里监听的点击事件无效了,例如onEnable里的this.node.on(cc.Node.EventType.TOUCH_END,()=>{},this);

 

onEnable

update

lateUpdate

 

五 shopPanel.enabled = false, 设置组件eui.Component的enabled,注意:1.不会再调用update,lateUpdate

onDisable

 

六 shopPanel.enabled = true

onEnable

update

lateUpate

 

七  shopPanel.node.active = false, 设置组件节点cc.Node的active, 注意:1. 和enabled区别是active=false时cc.Node会被隐藏,舞台上不显示商店面板了。

                                                                                                                        2.如果只是想隐藏商店,但是继续执行update,可以使用shopPanel.node.opacity = 0隐藏,shopPanel.node.opacity = 255显示

 

onDisable

 

八 shopPanel.node.active = true

onEnable

update

lateUpdate

 

九 shopPanel.node.destroy。 注意:1. destroy调用后不会立即销毁,在当前逻辑帧更新后统一销毁。可以通过cc.isValid判断该组件是否可用。

onDisable

onDestroy

 

CocosCreator 生命周期

标签:component   onload   const   ref   rip   点击   新建   激活   调用   

原文地址:https://www.cnblogs.com/gamedaybyday/p/13344334.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!