[AS3] クラスを複数のMovieClipシンボルに設定したい [Edit]

MovieClipを継承してコントロールするクラスは、MovieClipシンボルに[リンケージプロパティ]で[クラス]として設定することができます。それでは、複数のシンボルに対して、同じひとつのクラスを割当てることはできるでしょうか。

ActionScript 3.0で[リンケージプロパティ]に設定する[クラス]は、識別子の役割も果たします。つまり、必ずユニークでなければなりません。したがって、ひとつのクラスを複数のMovieClipシンボルの[クラス]に適用することはできない、ということになります[*1]

しかし、MovieClipを継承したクラスは、すべてがMovieClipクラスのプロパティやメソッドを使うことができます。ですから、複数のMovieClipシンボルに適用したいクラスは、直接シンボルに設定するのでなく、そのクラスを継承したサブクラスをつくり、そのサブクラスをシンボルに設定すればよいのです。

もっとも、そのためだけに、空のサブクラスをいちいち定義するのは面倒です。[リンケージプロパティ]ダイアログボックスには、[クラス]のほかに[基本クラス]というフィールドがあります。この[基本クラス]が、実は継承するスーパークラスの指定なのです。

[基本クラス]にはMovieClipシンボルの場合、デフォルトではflash.display.MovieClipが表示されます。そこに、複数のMovieClipシンボルに設定したいクラスを入力すればよいのです(図001)。[基本クラス]のフィールドであれば、同じクラスを別のMovieClipシンボルに設定しても問題ありません。

図001■[リンケージプロパティ]で継承するクラスを[基本クラス]に指定する
FF0801171_001.gif

なお、[クラス]にはユニークな名前を設定する必要があります。けれど、わざわざ空のクラスを定義しなくても、そのクラスが存在しなければFlashが自動的に生成します(図002)。ですから、識別子としてユニークな名前を入力するだけで構いません。

図002■クラスの自動生成を告げるダイアログボックス
クラスを自動生成


[*1] ActionScript 2.0では、[識別子]は別に入力したうえで、[クラス]を設定します。したがって、ひとつのクラスを複数のMovieClipシンボルに適用することが可能です。

コメント

この記事にコメントを書く

記事に対するテクニカルな質問はご遠慮ください(利用規約)。

その他の記事