cocoscreator 2.4.x 场景运行时的JS生命周期浅析

在开发Cocos Creator 2.4.x 版本的游戏过程中,发现组件的生命周期与Vue2较为相似,在此将其回调与执行顺序整理如下(按先后排列):

执行流程示意图

  1. onLoad

    节点首次激活(场景加载或节点被激活)时触发,整个生命周期只执行一次;此时可安全访问场景中的其他节点和资源,常用于初始化设置 。

  2. onEnable

    当组件 enabledfalse→true 或节点 activefalse→true 时触发;若节点第一次创建且默认启用,则在 onLoad 之后、start 之前调用 。

  3. start

    在第一次 update 之前触发,整个生命周期只执行一次;仅当组件启用且节点处于激活状态才会调用,适合初始化需要依赖组件启用状态的数据 。

  4. update

    组件启用后每帧调用,用于实现游戏逻辑、状态更新等 。

  5. lateUpdate

    所有 update 执行完后每帧调用,可在此处理摄像机跟随、动画后处理等需要"后更新"的逻辑 。

  6. onDisable

    当组件 enabledtrue→false 或节点 activetrue→false 时触发;隐藏节点或禁用组件时执行,常用于暂停逻辑或清理状态 。

  7. onDestroy

    节点或组件调用 destroy() 后,在当前帧结束时触发,用于释放资源、解除事件监听,防止内存泄漏 。

完整调用链(正常激活 → 销毁)
onLoad → onEnable → start → update ... lateUpdate ... → onDisable → onDestroy

补充说明

  • onLoad 在节点未激活时也会执行;其余回调都依赖节点与组件的激活/启用状态 。
  • 若节点被池中复用(如对象池),可能多次经历 onEnable / onDisable 但不会重新 onLoad
相关推荐
YounGp_oo7 天前
使用 AI 编程工具的一点实践体会:为什么要减少对话轮次、一次把需求说清楚
软件工程·需求分析·开发经验·工程实践·ai 编程
CodeCaptain15 天前
CocosCreator 3.8.x [.gitignore]文件内容,仅供参考
经验分享·cocos creator
VaJoy2 个月前
Cocos Creator Shader 入门 (21) —— 高斯模糊的高性能实现
前端·cocos creator
烛阴2 个月前
Luban集成CocosCreator完整教程
前端·typescript·cocos creator
VaJoy2 个月前
Cocos Creator Shader 入门 ⒇ —— 液态玻璃效果
前端·cocos creator
励扬程序2 个月前
Cocos Creator 3.8 实现指定Node节点截图功能教程
前端·cocos creator
肖恩不是小羊丶3 个月前
基于CocosCreator的ECS实现架构说明
架构·cocos creator
Setsuna_F_Seiei3 个月前
CocosCreator 游戏开发 - 利用 AssetsBundle 技术对小游戏包体积进行优化
前端·cocos creator·游戏开发
爱喝水的鱼丶5 个月前
SAP-ABAP: ABAP ASSIGN COMPONENT 语句详解:动态字段符号的利器作用用法示例详解
运维·开发语言·sap·abap·开发经验·动态字段符号