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
相关推荐
LcGero17 天前
TypeScript 快速上手:泛型与工具类型
typescript·cocos creator·游戏开发
LcGero17 天前
Cocos Creator 3.x 高维护性打字机对话系统设计与实现
cocos creator·打字机
LcGero18 天前
Cocos Creator 三端接入穿山甲 SDK
sdk·cocos creator·穿山甲
LcGero19 天前
Cocos Creator平台适配层框架设计
cocos creator·平台·框架设计
LcGero20 天前
Cocos Creator 业务与原生通信详解
android·ios·cocos creator·游戏开发·jsb
LcGero21 天前
TypeScript 快速上手:前言
typescript·cocos creator·游戏开发
Setsuna_F_Seiei21 天前
CocosCreator 游戏开发 - 多维度状态机架构设计与实现
前端·cocos creator·游戏开发
YounGp_oo3 个月前
使用 AI 编程工具的一点实践体会:为什么要减少对话轮次、一次把需求说清楚
软件工程·需求分析·开发经验·工程实践·ai 编程
CodeCaptain4 个月前
CocosCreator 3.8.x [.gitignore]文件内容,仅供参考
经验分享·cocos creator