[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
