ライブラリシンボルの基本クラスとして作成したクラスの使用に問題があります。
AvSkin
のインスタンスの表示として機能するクラスを作成しましたAvChild
。次のようになります。
package avian.environment.skins
{
import flash.display.DisplayObject;
/**
* @author Marty Wallace
* @version 1.0.0
*/
public class AvSkin extends DisplayObject
{
/**
* Getters
*/
public function get top():Number{ return y - height/2; }
public function get left():Number{ return x - width/2; }
public function get bottom():Number{ return y + height/2; }
public function get right():Number{ return x + width/2; }
}
}
明らかに多くのことはしませんが、重要なのは、後で追加できることです(つまり、render()
メソッド)。
問題は、これが拡張DisplayObject
され(スキンを、、、などにすることができるようにTextField
)SimpleButton
、Shape
ではないMovieClip
ため、ライブラリシンボルの基本クラスとして設定すると、このエラーがスローされることです。
5000:クラス'avian.environment.skins.AvSkin'は、そのタイプのライブラリシンボルにリンクされているため、'flash.display.MovieClip'をサブクラス化する必要があります。
これを回避する方法はありますか?次のいずれも実行したくありません。
- 拡張
AvSkin
しますMovieClip
。 - を拡張するライブラリシンボルのクラスを作成します
AvSkin
。
DisplayObjectを拡張するものの詳細な表現については、ここを参照してください。これは、私の質問の背後にある推論を裏付けるのに役立つ可能性があります。