因为需要在加载新的 bundle 时对 bundle 内所属的 ccclass 执行 cc.js.unregisterClass,所以需要获取 Bundle 所有包含的 ccclass
之前可以用 js._nameToClass 加固定格式名获取,现在怎么做?封装 ccclass?
因为需要在加载新的 bundle 时对 bundle 内所属的 ccclass 执行 cc.js.unregisterClass,所以需要获取 Bundle 所有包含的 ccclass
之前可以用 js._nameToClass 加固定格式名获取,现在怎么做?封装 ccclass?
只要是 ts 中直接能用的接口(public 的),都不会受到变量mangle 优化的影响。至于为什么之前 _ 开头的属性又标记为 deprecated 又 export 给开发者,还没有替代的接口,可能追溯比较难了。
变量 mangle 优化只会影响:在 ts 中用 js 的字符串key索引私有变量的方式。
比如通过: aaa['_bbb']['_ccc'](); 这样的访问方式。或者 (aaa as any)._bbb
主要的是现在的 _nameToClass 是废弃状态,以后有移除的可能,而通过 bundle 热更代码的功能又需要获取 bundle 内所有的 ccclass
那么目前获取 bundle 内所有的 ccclass只有两个方式
我的问题是现在需要一个能获取到 bundle 内所包含的所有 ccclass 的方法,才能实现 bundle 代码热更
而封装装饰器的方式并不太好,例如代码迁移,学习成本等
或者还有一种方式,引擎内置 bundle 代码热更功能,而且并不复杂
删除之前,肯定会有替代的方法的。对导出的接口的移除我们是很谨慎的。所以可以先继续用 _nameToClass
或者还有一种方式,引擎内置 bundle 代码热更功能,而且并不复杂
这个欢迎给我们引擎仓库提交 Pull Request 。