1

我正在使用 Flash Builder 4.7,我遇到了一个奇怪的问题,我得到的类没有任何更改:

VerifyError: Error #1053: Illegal override of HUDScreen in mobile_ui.screens.HUDScreen.

这个类扩展了 Sprite,并实现了一个接口。据我所知,接口中的所有方法都有正确的原型。此类中没有覆盖的属性或函数。如果相关的话,我们也使用robotlegs 进行依赖注入。

类定义

public class HUDScreen extends Sprite implements IHUDScreen
{
}

构造函数

public function HUDScreen()
{

}

接口定义

public interface IHUDScreen extends IEventDispatcher
{

}

我尝试清理项目,删除并重新导入项目,将包从 ui.screens.HUDScreen 更改为 mobile_ui.screens.HUDScreen。没有改变错误。

在这一点上,任何其他建议将不胜感激!

感谢您的时间。

编辑:我添加了类定义、接口定义和构造函数。

更新:我已经能够解决这个问题,我在下面的回答中概述了我所做的事情。我仍然对任何人关于如何发生这种情况的想法或想法感兴趣,或者可能是更具体的解决方案。

再次感谢所有花时间查看此问题的人!

4

2 回答 2

4

这似乎是由编译器未检测到的接口的错误实现引起的。以下代码被剪断导致错误:

public class Foo implements IFoo
{
    public function bar():String { return ""; }
}

public interface IFoo
{
    function get bar():String;
}

这个问题是由IFoo.bar一个吸气剂引起的,但Foo.bar()它是一种正常的方法。这是一种在查看代码时很容易被忽略的错误,如果你删除并重写所有内容,它就会被修复。

于 2014-10-07T10:04:13.900 回答
0

我仍然不知道为什么会发生这种情况或如何发生。但是,我能够让它再次工作。

我的想法是从类中删除所有方法,并为接口中的所有方法添加存根。然后,一个接一个地添加实际方法,直到我可以看到问题可能发生在哪里。

奇怪的是,在一次恢复一个方法并每次测试之后,它现在可以工作了。

这个类(本质上,代码的布局可能略有不同)是相同的,现在它可以工作了。

我仍然很困惑,但至少我现在可以继续前进。

希望这可以帮助某个地方的人。

于 2013-11-27T14:54:15.510 回答