tande lab.

[AS3] 外部swfの読込み&削除する

よく使うんだけど、よく忘れるのでメモ。
swfじゃなくて画像ファイルの読込みに使ってもOK。
もっと簡単な短いコードでも書けるのかもしれないけど。
更に簡単な方法あったら誰か教えてください。

var swfNum = 3; //読み込むswfファイルの数

//読み込むswfの受け皿を作っておく
var mcSWF:Array = new Array();
mcSWF["aaa"] = new Loader();
mcSWF["bbb"] = new Loader();
mcSWF["ccc"] = new Loader();

//外部swfの読み込み
function loadSWF(swfName:String){
	var fileName:String = "./swf/" + swfName + ".swf"; //外部ファイルまでのパスとか拡張子は適宜調整
	var request:URLRequest = new URLRequest(fileName);
	mcSWF[swfName].contentLoaderInfo.addEventListener(Event.COMPLETE, loadedSWF); //読込み完了したらloadedSWF()へ知らせる
	mcSWF[swfName].load(request);
	mcSWF[swfName].x = mcSWF[swfName].y = 0; //座標の設定

	this.addChild(mcSWF[swfName]);
}

//読み込み完了したら実行
var loadedSWFnum:int = 0; //読み込んだファイル数をカウント
function loadedSWF(e:Event):void{
	loadedSWFnum++;
	trace("loadedBG("+loadedSWFnum+");");
	if(loadedSWFnum == swfNum){
	   //全て読込み完了
	   //全部読み込んだ後に処理したいものはここに記述する
	   trace("loadedSWF Finished");
	}
}

//読み込んだswfを削除する
function removeSWF(swfName:String){
	this.removeChild(mcSWF[swfName]);
}

//swfを読込んでみる
loadSWF("aaa");
loadSWF("bbb");
loadSWF("ccc");

実行結果

loadedBG(aaa);
loadedBG(bbb);
loadedBG(ccc);
loadedSWF Finished



0 comments
Submit comment