项目中解决问题的方案记录一下,避免下次还得再找
背景
项目已经上线,需要通过热更的方式扩展引擎
所以需要重写部分引擎代码
现状
通过 cc.class 定义的部分方法, 没有绑定到cc命名空间
导致无法通过cc.Asset 这种方式获取类名
但是需要 重写这部分代码
cc.class 没有获取class的方法
解决方案
通过查看 CCClass 方法 发现 通过cc.class 创建的类,都会保存到cc.js的命名空间 所以。我们可以通过 cc.js.getClassByName("") 的方式获取类。参数为:cc.class()创建的时候传入的类名
var Skeleton = cc.js.getClassByName("sp.Skeleton");
var addFuncSkeleton = function(curSkeleton){
// 在这里复写需要
}
Skeleton && addFuncSkeleton(Skeleton)