跳至主要內容

mk.life_cycle:生命周期

muzzik大约 1 分钟

生命周期组件,所有的生命周期函数都由这个组件实现

组件特性

  • 自动执行父类生命周期函数

所有的生命周期函数onLoad、start、create、init、open...等等,都会先执行父类的函数,再执行子类的函数,不必你手动调用 super.xxx()

  • 函数阻塞警告

DEBUG 模式时启用,当 create, init, open, close, late_close 函数阻塞时,会打印阻塞错误,阻塞时间配置为 global_config.view.blocking_warning_time_ms_n

  • 关闭模块自动重置数据

当模块 close 完毕后且 this.data 为一个 class 类型数据,组件会自动将 this.data 赋值为 new class 的数据

  • 自动清理事件/数据事件

如果你的事件对象为 mk.event_targetmk.monitor 类型且监听时填写事件目标,如下

// 第三个参数为事件对象
main_bundle.event.on(main_bundle.event.key.template, this._event_template, this)

那么事件会在组件 close 后释放,避免写一堆冗余的事件注销代码

如果你的事件对象不是以上所说类型但是包含 targetOfftarget_off 函数,你也可以使用 this.event_target_as.push(event_target) 自动跟随组件释放

  • 跟随模块释放资源

this.follow_release(...) 传入跟随释放资源,this.cancel_release(...) 取消跟随释放资源

参数类型支持 cc.Node | cc.Asset | mk.audio_._unit | 函数 | 对象,详情查看 mk.release_.release_param_type

  • 独立日志打印

可用 this._log.logthis._log.warnthis._log.error 打印模块专属日志

  • 自动清理定时器

在模块 close 后,将自动执行 this.unscheduleAllCallbacks() 清理定时器

生命周期函数

由于快速开始open in new window已经介绍过,这里不过多赘述

  • create

  • init

  • open

  • close

📣 觉得很赞?分享给你的朋友吧!