package
{
//import com.demonsters.debugger.MonsterDebugger;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
import flash.net.URLStream;
import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
import flash.system.Security;
import flash.utils.ByteArray;
public class Preloader extends Sprite
{
private var bytes:ByteArray;
public function Preloader()
{
Security.allowDomain("*");
Security.allowInsecureDomain("*");
//MonsterDebugger.initialize(this);
//MonsterDebugger.trace(this, "Hello World!");
//var gameMain:GameMain = new GameMain();
//addChild(gameMain);
load();
}
private function load():void
{
var stream:URLStream = new URLStream();
stream.addEventListener(ProgressEvent.PROGRESS, this.onAssetProgress);
stream.addEventListener(Event.COMPLETE, this.onAssetComplete);
var req:URLRequest = new URLRequest();
req.url = "Main.swf";
stream.load(req);
}
protected function onAssetProgress(e:ProgressEvent):void
{
trace("e.bytesLoaded:"+e.bytesLoaded + "e.bytesTotal:"+e.bytesTotal);
}
protected function onAssetComplete(e:Event):void
{
var stream:URLStream = (e.currentTarget as URLStream);
bytes = new ByteArray();
stream.readBytes(bytes);
loadBytesHs();
}
public function loadBytesHs():Loader
{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.onModuleComplete);
this.addChild(loader);
if (bytes != null)
{
var $loadercontext:LoaderContext = new LoaderContext(false);
$loadercontext.applicationDomain = ApplicationDomain.currentDomain;
/*//flash 10.0兼容
if($loadercontext.hasOwnProperty("allowCodeImport"))
{
$loadercontext["allowCodeImport"]=true;
}*/
loader.loadBytes(bytes, $loadercontext);
}
return (loader);
}
protected function onModuleComplete(e:Event):void
{
var loaderInfo:LoaderInfo = (e.currentTarget as LoaderInfo);
if (loaderInfo.hasEventListener(Event.COMPLETE))
{
loaderInfo.removeEventListener(Event.COMPLETE, this.onModuleComplete);
}
}
}
}