FLASH CS3で画像をリンケージしたときのインスタンス生成

FLASH CS3ではMovieClipだけでなくライブラリ内の画像もリンケージ設定可能です。
ただしBitMapDataクラスとして登録されるのでインスタンス生成には少しコツが必要です。

BitMapDataのコンストラクタは以下のようになっています

BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)

幅と高さはは必須になっているので、MovieClipのように単純にnewするとエラーがおきてしまいます。


そこで

var imageClass:Class = getDefinitionByName( "accept.png" ) as Class;
this.addChild( new Bitmap( new imageClass(0,0) ) );

のように0,0を与えることで生成させます。
とくにこの値が0だからといって、サイズ0のBitMapDataが生成されるというわけでなく、登録されているリンケージの画像サイズになります。


生成されるのはBitMapDataなのでDisplayObjectを継承していません。
そのままではaddChildできないので、BitMapDataからBitMapインスタンスを生成しましょう。