『 [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することができた。