MovieClipを継承してコントロールするクラスは、MovieClipシンボルに[リンケージプロパティ]で[クラス]として設定することができます。それでは、複数のシンボルに対して、同じひとつのクラスを割当てることはできるでしょうか。
ActionScript 3.0で[リンケージプロパティ]に設定する[クラス]は、識別子の役割も果たします。つまり、必ずユニークでなければなりません。したがって、ひとつのクラスを複数のMovieClipシンボルの[クラス]に適用することはできない、ということになります[*1]。
しかし、MovieClipを継承したクラスは、すべてがMovieClipクラスのプロパティやメソッドを使うことができます。ですから、複数のMovieClipシンボルに適用したいクラスは、直接シンボルに設定するのでなく、そのクラスを継承したサブクラスをつくり、そのサブクラスをシンボルに設定すればよいのです。
もっとも、そのためだけに、空のサブクラスをいちいち定義するのは面倒です。[リンケージプロパティ]ダイアログボックスには、[クラス]のほかに[基本クラス]というフィールドがあります。この[基本クラス]が、実は継承するスーパークラスの指定なのです。
[基本クラス]にはMovieClipシンボルの場合、デフォルトではflash.display.MovieClipが表示されます。そこに、複数のMovieClipシンボルに設定したいクラスを入力すればよいのです(図001)。[基本クラス]のフィールドであれば、同じクラスを別のMovieClipシンボルに設定しても問題ありません。
図001■[リンケージプロパティ]で継承するクラスを[基本クラス]に指定する
なお、[クラス]にはユニークな名前を設定する必要があります。けれど、わざわざ空のクラスを定義しなくても、そのクラスが存在しなければFlashが自動的に生成します(図002)。ですから、識別子としてユニークな名前を入力するだけで構いません。
図002■クラスの自動生成を告げるダイアログボックス
[*1] ActionScript 2.0では、[識別子]は別に入力したうえで、[クラス]を設定します。したがって、ひとつのクラスを複数のMovieClipシンボルに適用することが可能です。