由于一些不相关的原因,我需要一个类:
- 继承(直接或不)从
MovieClip
. - 它实现了一个特定的接口(让我们假设这个接口是空的,因为它不会改变任何问题)。
- 并且其.as文件声明了内部类。
以下代码总结了这一点:
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 中对此进行了测试。