对于一些无关紧要的原因,我需要一个类:AS3:内部类和接口的编译器错误?
- 继承(直接与否)从
MovieClip
。 - 它实现了一个特定的接口(让我们假设这个接口是空的,因为它不会改变任何问题)。
- 及其。作为文件声明内部类。
下面的代码求和这件事:
package {
import flash.display.MovieClip;
public class MyClass extends MovieClip implements EmptyInterface { }
}
class MyInnerClass { }
上面代码的问题是,它不会总是编译。只要我使用MyClass
作为链接对于我的库项目之一,编译器抱怨MyClass
不是MovieClip
的子类。另一方面,如果我手动实例化并将其添加到舞台,一切都会很好。
看起来接口和内部类在某种特定情况下以某种方式相互排斥。事实上,如果我删除了内部类我没有这样的错误了:
package {
import flash.display.MovieClip;
public class MyClass extends MovieClip implements EmptyInterface { }
}
同样的事情时我删除实现的接口,但保持内部类:
package {
import flash.display.MovieClip;
public class MyClass extends MovieClip { }
}
class MyInnerClass { }
请注意,我只是完成在Flash CS5中对此进行了测试。
我的猜测是,EmptyInterface阻止一些影片剪辑功能的该链接时,编译器测试对于。 – 2012-07-16 14:23:29
内部类可能会导致问题,因为它在默认范围内,而在顶层包中。您是否尝试过使用完全限定的软件包名称? – weltraumpirat 2012-07-16 16:10:12
@The_ManMan不知道你说了什么,但是,如果接口是问题的原因,当我删除内部类声明并保留接口时,代码为什么工作? – 2012-07-17 07:29:51