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); } } } }