Flash制作講座フラッシュ制作講習

FLASH制作からActionScriptによるFlashコンテンツ制作のためのフラッシュ制作講座

外部画像ループMC作成-Flash/AS3.0

今回は、外部画像を読み込んでMCをstageに配置する流れをループ処理で指定した回数実行する記述です。


実際のコンテンツはブログから出力されるRSSフィードから記事数のlengthを取得して、記事の数だけ実行するために作成します、
RSSからのXMLパースは前エントリーがあるので省略しています。


MCをfor文などのループ処理で作成する場合、変数のみではなく必ず配列で作成する必要があります。


【記述例】
var whCnt:Number = 5;
var mcArr:Array = new Array();//MC配列を用意
var areaArr:Array = new Array();//親MC配列を用意

var mCnt:Number = new Number();

for (var i:Number = 0; i < whCnt; i++) {
var herMc:MovieClip = new MovieClip();
herMc.name="herMc"+i;
mcArr[i]=herMc;
var loadA:Loader = new Loader();
var url_thum:URLRequest=new URLRequest(whTHUM[i]);//whTHUM配列にはすでに画像パスが入っている
loadA.load(url_thum);
mcArr[i].x=50*i;
mcArr[i].y=0*i;
mcArr[i].addChildAt(loadA,0);
mCnt= i;
var areaM:MovieClip = new MovieClip();
areaM = "areaM"+i;
areaArr[i] = areaM;
areaArr[i].addChild(mcArr[i]);
}
loadA.contentLoaderInfo.addEventListener(Event.COMPLETE,loadComp);
function loadComp(event:Event):void {
trace("カウント"+mCnt);
for (var i:Number = 0; i < whCnt; i++) {
trace(mcArr[i]);
mcArr[i].width=250;
mcArr[i].height=250;
}
}

【簡単な解説】
複数のイメージ画像をmc:herMcにループしてロードし、そのmc:herMcを別々の親MCにそれぞれ配置する記述です。



ここで、一見無意味に見えるcontentLoaderInfo.addEventListenerのイベントリスナーですが、このイベントがないとmcの縦横サイズのプロパティが取得できないので、
X軸やY軸の指定ができても、widthやheightの指定をするときは必ず必要になります。


またcontentLoaderInfo.addEventListenerはすべての処理が完了した時点でコールされるので、配列でのコントロールが出来ないです。


注意点としては、function loadComp()からの横縦サイズの指定のときに、arrArr[i]からのパス指定ではなく、mcArr[i]パスを直接指定します。


もっと記述方法はシンプルにできるかもしれません。