load SWF_binary
外部swfが読み込みテスト2
* バイナリでロード
♥0 |
Line 78 |
Modified 2009-12-15 18:59:39 |
MIT License
archived:2017-03-20 13:15:56
ActionScript3 source code
/**
* Copyright shunsuke_ohba ( http://wonderfl.net/user/shunsuke_ohba )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/5l2O
*/
/*
* 外部swfが読み込みテスト2
* バイナリでロード
*/
package
{
import flash.display.*;
import flash.events.Event;
import flash.events.HTTPStatusEvent;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.events.SecurityErrorEvent;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.system.*;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.utils.ByteArray;
/**
* ...
* @author Shunsuke Ohba
*/
[SWF(backgroundColor="#000000", frameRate="30",width="465",height="465")]
public class Main2 extends Sprite
{
private var URL:String="http://wonderfl.reinit.info/swf/loadswf.swf";
private var mc:MovieClip;
private var _loader:Loader;
private var _urlLoader:URLLoader;
private var _trPass:String;
private var t:TextField;
private var fase:String="";
/*======================================================================*//**
* constructor
*/
public function Main2():void {init();}
private function init():void
{
Security.loadPolicyFile("http://wonderfl.reinit.info/crossdomain.xml");
t = addChild(new TextField) as TextField;
t.autoSize = TextFieldAutoSize.LEFT;
t.x = 5;
t.text = "init";
t.textColor = 0xffffff;
_trPass = "urlLoader";
_urlLoader = new URLLoader;
//バイナリで読み込み
_urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
_urlLoader.addEventListener(ProgressEvent.PROGRESS, _onProgress);
_urlLoader.addEventListener(Event.COMPLETE, _onURLLoaderComplete);
_urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,_onSecurityError);
_urlLoader.addEventListener(IOErrorEvent.IO_ERROR, _onIOError);
_urlLoader.load(new URLRequest(URL));
fase = "init";
}
private function _onSecurityError(e:SecurityErrorEvent):void
{
t.width = 465;
t.text = "SecurityError:"+fase;
}
private function _onProgress(e:ProgressEvent):void
{
t.text = "Progress..." + e.bytesLoaded + "/" + e.bytesTotal;
}
private function _onURLLoaderComplete(e:Event):void
{
fase = "loader";
t.text = "URLLloaderComplete";
_trPass = "loader";
var i:int,l:int, bArr:ByteArray, a:Array;
bArr = _urlLoader.data;
_loader = new Loader;
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _onLoaderComplete);
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, _onIOError);
_loader.loadBytes(bArr);
}
private function _onIOError(e:IOErrorEvent):void
{
t.text = "Error:"+_trPass;
}
private function _onLoaderComplete(e:Event):void
{
t.text = "loaderComplete";
addChild(_loader);
//外部swfロード完了
var swf:Object = _loader.content;
//外部swfに設定してあるinitメソッドたたく
swf.init();
}
}
}