リンケージMCループ生成Flash-AS3.0
ライブラリに登録してあるリンケージ(クラス)MovieClipを複数ループ処理で生成する記述について理解してみました。
for文を利用して、stageに親ノードとなるMCを準備して、リンケージMovieClipのクラス名を付けて複数のムービークリップをループ処理でstageに配置したMC内生成します。
文字列からクラス名への変換には、"getDefinitionByName"クラスを利用します。
getDefinitionByNameで文字列のクラスを作成して、配列へ新規変数を配置するというとてもシンプルな方法です。
【記述例】
//ステージMCの用意
var stageMc:MovieClip = new MovieClip();
stageMc.graphics.drawRect(0, 0,500,180);
addChild(stageMc);
//リンケージからのstageMCへのMC生成
var imgArr:Array = new Array();//配列を用意
for (var g=0; g<5; g++) {
var clss:Class = Class(getDefinitionByName("img0"+(1+g))) as Class;//リンケージである"img0*"というムービークリップを変数に変換
var stageImg:MovieClip = new clss();
stageImg.name = "img0"+g;//配置するMCの名前を付ける
imgArr[g]= stageImg;
imgArr[g].x=stagew*g;
stageMc.addChild(stageImg);
}
以上でfor文を利用したループ処理のムービークリップの生成が上手くいきました。