エフェクト付きスライドショーを作っているのですが、MovieClipLoaderに関して質問です。
全体の流れは、コンストラクタから画像読込メソッド(preloadImage)を呼び出し、画像読込完了後マスク生成メソッド(creatMask)を呼び出す・・・という風に書いています。
が、どうもリスナー(onLoadComplete)から呼び出しているメソッド(createMask)が反応していないようです。
根本的にコードの記述方法が間違っているかもしれませんが、原因が分かる方がいましたらご教授お願いします。
以下、コードです。(実際のコードからだいぶ端折ってます)
ルートの1フレーム目に記述
var props:Object = {url:"images/01.jpg", size:20};
attachMovie("SlideShow", "slideShow", 1, props);
SlideShow.as
class SlideShow extends MovieClip {
public var url:String, size:Number;
public var buffer:MovieClip;
public function SlideShow() {
preloadImage();
}
public function preloadImage():Void {
createEmptyMovieClip("buffer", 1);
var clipLoader:MovieClipLoader = new MovieClipLoader();
var clipListener:Object = new Object();
clipLoader.addListener(clipListener);
clipLoader.loadClip(url, buffer);
clipListener.onLoadComplete = function() {
trace("onLoadComplete"); //出力 onLoadComplete
createMask();
clipLoader.removeListener(this);
};
}
public function createMask():Void {
trace("createMask"); //出力なし
var i:Number = 0;
var y:Number = 0;
while (i<3) {
var props:Object = {url:url, size:size, xPos:0, yPos:y};
attachMovie("SlideMask", "slideMask"+i, i, props);
y += size;
i++;
}
}
}