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

  

相关文章:

  • 2021-06-02
  • 2021-06-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-02
  • 2021-12-14
猜你喜欢
  • 2021-04-11
  • 2022-12-23
  • 2021-12-18
  • 2021-09-25
  • 2021-06-06
  • 2021-03-31
  • 2021-11-19
相关资源
相似解决方案