我正在使用Typescript将大型闪存应用程序转换为画布,并且我在使用类扩展库对象时遇到了麻烦。
使用按钮的类库,
class BtnClass {
constructor(el: createjs.MovieClip) {
el.addEventListener("mouseover", MouseOverHandler.bind(el));
}
}
如果我在Animate CC中的舞台上放置一个对象,可以通过在导出框架中添加动作,所有这些都可以使用此类,所有这些都可以很好地效果,
Btn1 = new BtnClass(this.buttons.btn1_mc);
,但我无法为动态放置的库对象工作。
试图在没有放置在动画cc阶段的库对象上扩展对象时会出现错误。
var libraryObject = new lib.btn2_mc();
var dynamicButton = createjs.extend(new BtnClass(libraryObject), libraryObject);
currentElement.addChild(dynamicButton);
错误:类型'BTNClass'的参数不能分配给Type'((=> Any'的参数。键入'BTNClass'不提供签名'((:任何'。
任何想法都将受到赞赏。
我正在以以下方式及其作品扩展createjs组件。如果您有任何问题,请尝试让我知道
class BtnClass extends (lib.btn2_mc as { new(): any; }) {
}
extend
方法将类作为参数而不是实例。
createjs.extend(BtnClass, lib.btn2_mc);
然后它返回原型,您可以将方法附加到。然后,您可以从超级类提升方法,如果您覆盖了原型方法,则可以访问原型方法。有关特定用法,请参见Easeljs类。
不确定它会解决您的问题,但至少是正确的语法。