VerifyError:错误#1053:非法覆盖addEventListener

时间:2013-08-31 22:54:05

标签: actionscript-3 actionscript air adobe flash-builder

我收到以下错误:

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。

我无法编译,也不知道如何解决这个问题,感谢帮助。

3 个答案:

答案 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函数而没有问题。