我收到以下错误:
VerifyError: Error #1053: Illegal override of addEventListener in
some.path.to.my.CustomObject
这通常发生在版本不同时尝试加载swf / swc时,但通常使用自定义库,而不是像addEventListener
这样的flash方法。我的库是相同的AIR SDK 3.8版本,顶级应用程序具有相同的版本。我最初使用3.4,但升级到3.8认为它可能有所帮助,但事实并非如此。我还将flash播放器更新到11.8,没有区别。
它抱怨的CustomObject
在其类或任何基类中没有addEventListener
覆盖。基类也是自定义的,它们不是从flash类派生的。我正在使用Flash Builder 4.7。
我无法编译,也不知道如何解决这个问题,感谢帮助。
答案 0 :(得分:1)
这可能有所帮助。当您加载外部swf并且它可能包含与父swf的一些冲突类定义时,因此您可以对加载的子swf使用不同的域。
var appDomainA:ApplicationDomain = new ApplicationDomain();
var contextA:LoaderContext = new LoaderContext(false, appDomainA);
var loaderA:Loader = new Loader();
loaderA.load(new URLRequest("application2.swf"), contextA);//application2.swf is you external swf
此代码和示例可在此页面application domain
中找到答案 1 :(得分:1)
更改自定义对象的包名称以及所涉及的任何方法。如果同一错误仍然存在于原始命名空间的错误中,那么您的库中需要预先编译的代码需要删除。您可能需要重新创建SWC。 (我仍然不确定您要导入哪些库,请注意不要在发布设置中意外导入库)
一种可能性是您没有意外导入正确的对象:例如,类this.package.here.BouncingBall,但实际上是导入fl.events.animations.BouncingBall。
答案 2 :(得分:0)
发现了另一个条件 - 在基类中,有时通过getter访问基类中的局部变量会导致此问题。这似乎是随机的,并不总是会发生。
所以而不是
protected var __someVar:int;
public function get someVar():int{
return __someVar;
}
public function addOneToSomeVar():int{
return someVar + 1; //using local getter - caused VerifyError #1035
}
做
protected var __someVar:int;
public function get someVar():int{
return __someVar;
}
public function addOneToSomeVar():int{
return __someVar + 1; //using local variable
}
这并不总是一致的。我正在使用其他getter函数而没有问题。