资源‐Bundle管理 热更 - 1226085293/MKFramework GitHub Wiki
mk.bundle 负责 Bundle 资源的加载/重载,以及对 Scene 的管理
Bundle
Set
set 接口是为了暂存远程 bundle 配置,用于在使用 load 的时候可以只传递 bundle 名即可加载远程 Bundle
set 可以调用多次
mk.bundle.set({
bundle_s: "bundle名",
origin_s: "http://xxx",
version_s: "bundle版本号"
});
// 后面调用 load 就不必传递远程 bundle 的 origin_s 和 version_s
mk.bundle.load("bundle名");
加载
mk.bundle.load("xxx")
重载(热更)
mk.bundle.reload({ ... })
reload 时会自动更新 bundle 的脚本及资源,用于替代 manifest 的热更方式, 支持原生/Web
注意事项:
- 构建时需勾选 MD5 才可以使用 reload 对 Bundle 进行热更
- 不可以在 bundleA 的 scene 内对 bundleA 执行 reload,因为 reload 时会清理 Bundle 资源,此时如果引用 BundleA 的资源则会导致资源丢失报错
- reload 之前需要清理 bundle 内的定时器,取消事件回调等。如果这些逻辑是在 close 或节点销毁时自动清理的则不需要处理
Scene(场景)
加载
mk.bundle.load_scene("xxx", { bundle_s: "bundle名" })
预加载
mk.bundle.load_scene("xxx", { bundle_s: "bundle名", preload_b: true })