package { import fl.controls.Button; import fl.controls.TextArea; import flash.display.Loader; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.ErrorEvent; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.MouseEvent; import flash.events.SecurityErrorEvent; import flash.net.URLRequest; import flash.system.Capabilities; import flash.text.TextFormat; public class LoaderTest extends Sprite { private var log:TextArea; private var btnLoad:Button; private var loader:Loader; private var loadList:Array = ["", "#", "unknown/", "unknown.dat"]; public function LoaderTest() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; log = addChild(new TextArea()) as TextArea; log.width = 390; log.height = 255; log.x = 5; log.y = 35; log.setStyle("textFormat", new TextFormat("Arial", 12)); addText("[Player Version] " + Capabilities.version, 0xFF8800); addText("[Player Type] " + Capabilities.playerType); loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError); for (var i:int = 0; i < loadList.length; i++) { var btn:Button = addChild(new Button()) as Button; btn.label = loadList[i]; btn.x = 85 * i + 5; btn.y = 5; btn.width = 80; btn.addEventListener(MouseEvent.CLICK, onClickLoad); } } private function onClickLoad(e:MouseEvent):void { var btn:Button = e.currentTarget as Button; addLine(); addText("Loader.load(new URLRequest(\"" + btn.label + "\"));", 0x0088FF); loader.load(new URLRequest(btn.label)); } private function onError(e:ErrorEvent):void { addText(e.text, 0xFF0000); } private function onComplete(e:Event):void { addText("Complete", 0x0000FF); } private function addText(text:String, color:uint = 0x000000):void { var begin:int = log.text.length; var newLine:String = (begin)? "\n" : ""; log.appendText(newLine + text); log.textField.setTextFormat(new TextFormat(null, null, color), begin, log.text.length); log.verticalScrollPosition = log.maxVerticalScrollPosition; } private function addLine():void{ addText("-----------------------------------------------------------------------------"); } } }