『 [AS2] ライブラリに無いMovieClipのサブクラスをattachMovie 』

2009 年 1 月 27 日

すぐ忘れてしまうので書いておく。

AS2でMovieClipを継承したSubClassをステージ上に表示したいときがある。AS3では

addChild(new SubClass());

AS2ではライブラリに空のMovieClipシンボルを登録して、シンボルのリンケージからSubClassに関連づけをおこなってattachMovieすればいい。

attachMovie("SubClass", "subclass", 0);

が、わざわざ空のMovieClipを作ってリンケージするのは気持ち悪いので、こうする。
このときSubClassに関連づけられたシンボルはライブラリに存在しなくてもよい。

/**
 * MovieClipのサブクラス
 */
class SubClass extends MovieClip {

    //クラスを登録する
    static var SymbolName:String = "__Packages.SubClass";
    static var SymbolOwner:Function = SubClass;
    static var SymbolLinked:Boolean = Object.registerClass(SymbolName, SymbolOwner);

    public function SubClass() {
        _x = _y = 150;
        beginFill(0x000000, 100);
        moveTo(-50, -50);
        lineTo( 50, -50);
        lineTo( 50,  50);
        lineTo(-50,  50);
        lineTo(-50,  50);
        endFill();
        onEnterFrame = function():Void {
            _rotation += 5;
        }
    }
}

/**
 * 呼び出し側の記述
 */
attachMovie(SubClass.SymbolName, "subclass", 0);

実行結果

無事にattachMovieすることができた。

« 
» 

Leave a Reply