リプタクのもう覚えられません
Google
Web サイト内
topmemo ▶ 外部swf情報取得サンプル

ActionScript

外部swf情報取得サンプル

外部swfをロードして情報を取得するサンプル

JavaScriptを有効にし、最新のFlashPlayerをインストールお願いしますGet Adobe Flash player


アクションフレーム





kaiseki_bt.addEventListener(MouseEvent.CLICK,funcKaiseki);
add_bt.addEventListener(MouseEvent.CLICK,funcAdd);
remove_bt.addEventListener(MouseEvent.CLICK,funcRemove);


var loader1:Loader = new Loader();
var url1:String;
var load_mc:MovieClip;
var flagAdd:String = "準備中";

function funcKaiseki (e:MouseEvent):void{
	if(input_tf.text ==""){
		output_tf.text = "↑swfURLを入力して下さい";
	}else{
		url1 = input_tf.text;
		loader1.contentLoaderInfo.addEventListener(Event.OPEN, funcStartLoad);//ロード開始
		loader1.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, funcError);//ロード失敗
		loader1.contentLoaderInfo.addEventListener(Event.INIT, funcKaisekiEnd);//アクセス可能
		loader1.contentLoaderInfo.addEventListener(Event.COMPLETE, funcComp);//ロード完了
		loader1.load(new URLRequest(url1));
	}
}

//ロード開始
function funcStartLoad(e:Event):void{
	stage.addEventListener(Event.ENTER_FRAME,funcParcent);
}

//ロード中(※ENTER_FRAME)
function funcParcent(e:Event):void{
	var info1:LoaderInfo = LoaderInfo(loader1.contentLoaderInfo);
	output_tf.text = "ローディング" + String(Math.floor(info1.bytesLoaded/info1.bytesTotal*100)) + "%";
	
}

//ロード失敗
function funcError(e:IOErrorEvent):void{
	stage.removeEventListener(Event.ENTER_FRAME,funcParcent);
	output_tf.text ="ロードできませんでした"+ "\n";
	output_tf.appendText("エラーメッセージは以下の通り" + "\n" + e);
}

//アクセス可能
function funcKaisekiEnd(e:Event):void{
	stage.removeEventListener(Event.ENTER_FRAME,funcParcent);
		
	var info1:LoaderInfo = LoaderInfo(loader1.contentLoaderInfo);
	
	output_tf.text = "ロードファイル:" + info1.url +"\n\n";
	output_tf.appendText("SWFファイル形式バージョン:" + info1.swfVersion + "\n\n");
	output_tf.appendText("ロードされたファイルのMIMEタイプ:" + info1.contentType	 + "\n\n");
	output_tf.appendText("ActionScriptバージョン:" + info1.actionScriptVersion +"\n\n");
	output_tf.appendText("ロード済みバイト数:" + info1.bytesLoaded +"\n\n");
	output_tf.appendText("ファイル全体バイト数:" + info1.bytesTotal +"\n\n");
	output_tf.appendText("フレームレート:" + info1.frameRate +"\n\n");
	output_tf.appendText("SWFファイル幅:" + info1.width + "\n\n");
	output_tf.appendText("SWFファイル高さ:" + info1.height + "\n\n");
	output_tf.appendText("ロードを実行したファイル:" + info1.loaderURL	 + "\n\n");
	output_tf.appendText("ロードを実行したファイルとのドメイン関係:" + info1.sameDomain + "\n\n");
	output_tf.appendText("SWFファイルに提供されるパラメータ:" + info1.parameters + "\n\n");
	output_tf.appendText("EventDispatcherインスタンス:" + info1.sharedEvents + "\n\n");
	output_tf.appendText("コンテンツ (子) からロードする側 (親) への信頼関係:" + info1.childAllowsParent + "\n\n");
	output_tf.appendText("LoaderInfoオブジェクトに関係したロードされたオブジェクト:" + info1.content	 + "\n\n");
	output_tf.appendText("loaderInfoオブジェクトに関係したLoaderオブジェクト:" + info1.loader	 + "\n\n");
}

//ロード完了
function funcComp(e:Event):void{
	if(flagAdd != "配置準備OK"){
		flagAdd = "配置準備OK";
	}
	output_tf.appendText("ロードコンプリート" + "\n\n");
}

//配置
function funcAdd (e:MouseEvent):void{
	
	if(flagAdd == "配置準備OK"){
		flagAdd = "配置済み";
		addChild(loader1);
		output_tf.text = ""
	}else if(flagAdd == "準備中"){
		output_tf.text = "ロードされたswfファイルはありません";
	}
}

//撤去
function funcRemove (e:MouseEvent):void{
	if(flagAdd == "配置済み"){
		flagAdd = "準備中"
		removeChild(loader1);
		loader1.unload();
		loader1 = new Loader();
	}
}




last update 2011.1.18
参考・出典等
ActionScript 3.0 コンポーネントリファレンスガイドLoaderInfo

▲page top

topmemogalleryblogtestaboutlinksmail
Copylight(C)2008-2010 Riptac. All Rights Reserved.