资源‐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

注意事项:

  1. 构建时需勾选 MD5 才可以使用 reload 对 Bundle 进行热更
  2. 不可以在 bundleA 的 scene 内对 bundleA 执行 reload,因为 reload 时会清理 Bundle 资源,此时如果引用 BundleA 的资源则会导致资源丢失报错
  3. reload 之前需要清理 bundle 内的定时器,取消事件回调等。如果这些逻辑是在 close 或节点销毁时自动清理的则不需要处理

Scene(场景)

加载

mk.bundle.load_scene("xxx", { bundle_s: "bundle名" })

预加载

mk.bundle.load_scene("xxx", { bundle_s: "bundle名", preload_b: true })