いくつかの無関係な理由で、クラスが必要です:
- から (直接または非) 継承し
MovieClip
ます。 - 特定のインターフェイスを実装します (問題に何も変更しないため、このインターフェイスは空であると仮定しましょう)。
- その.asファイルは内部クラスを宣言します。
次のコードはこれをまとめたものです。
package {
import flash.display.MovieClip;
public class MyClass extends MovieClip implements EmptyInterface { }
}
class MyInnerClass { }
上記のコードの問題は、常にコンパイルされるとは限らないことです。MyClass
ライブラリの項目の 1 つにLinkageを使用するとすぐに、コンパイラ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 でのみテストしたことに注意してください。