package flash { import flash.display.Loader; import flash.events.Event; import flash.events.MouseEvent; import flash.utils.getQualifiedClassName; import flash.utils.clearInterval; import flash.utils.Dictionary; import flash.utils.setInterval; import flash.geom.ColorTransform; import flash.utils.ByteArray; import flash.display.MovieClip; import flash.display.DisplayObject; import flash.display.DisplayObjectContainer; import flash.display.Loader; import flash.net.URLRequest; import flash.net.URLLoader; import flash.events.IOErrorEvent; import flash.geom.Rectangle; import flash.display.BitmapData; import flash.display.Bitmap; import flash.geom.Point; import flash.text.TextField; import flash.net.FileReferenceList; public dynamic class Main extends flash.display.MovieClip { private var mdl; public var cData; public var url; public var modDataLoader:Class; private var main; var pastcdata:String = ""; public var bgs:Array = new Array(); var BGind:Number = 0; var b1; var b2; var l1; var g; var recentcData; public function initl(l) { main = l; g = main.g; main.addEnterFramePersist(myEvent); main.updateStatusCol("BGLoader LOADED", "#0000FF"); main.unloadMod(); } function myEvent(l){ if(l.cData != pastcdata && l.cData != "$OVER$" && l.cData != "$RESET$" && l.cData != "$INIT$"){ recentcData = l.cData; //PROBABLY ADD PROXY THING HERE? mdl = new modDataLoader("bgs/bgs.txt", l.cData ,dataLoaded); mdl.addEventListener("dataNotFound",noDataFound); } pastcdata = l.cData; } function noDataFound(e){ //main.updateStatus("NO BG FOLDER"); //main.unloadMod(); } function dataLoaded(e) { bgs = e.loader.standardLines(e.binData.toString()); var Button:Class = main.lDOM.getDefinition("Modules.Controls.Button") as Class; var Label:Class = main.lDOM.getDefinition("Modules.Controls.Label") as Class; b1 = new Button(20,20,"\u25B6"); b1.setTextSize(10); b1.addEventListener(MouseEvent.CLICK, rClicked); b1.x = -330 + 100 + 1; b1.y = 18; b2 = new Button(20,20,"\u25C0"); b2.setTextSize(10); b2.x = -330 - 21; b2.y = 18; b2.addEventListener(MouseEvent.CLICK, lClicked); l1 = new Button(100,20,bgs[BGind]); l1.x = -330; l1.y = 18; l1.setTextSize(10); main.registerUnloadFunction(test) g.inGameMenu.sceneMenu.addChild(b1); g.inGameMenu.sceneMenu.addChild(b2); g.inGameMenu.sceneMenu.addChild(l1); loadBG(); } function rClicked(e) { BGind++; if (BGind>=bgs.length) { BGind = 0; } loadBG(); } function lClicked(e) { BGind--; if (BGind<0) { BGind = bgs.length-1; } loadBG(); } function bgLoaded(e){ var obgLdr = new Loader(); obgLdr.contentLoaderInfo.addEventListener("complete",e.loader.onOBG); obgLdr.loadBytes(e.binData); l1.textLabel.tf.text = bgs[BGind]; l1.setTextSize(10); } function test() { BGind = 0; g.inGameMenu.sceneMenu.removeChild(l1); g.inGameMenu.sceneMenu.removeChild(b1); g.inGameMenu.sceneMenu.removeChild(b2); main.unloadMod(); } function loadBG() { var myRA:Array = new Array(); myRA = bgs[BGind].split("."); if(myRA[myRA.length-1]!="swf"){ mdl = new modDataLoader("bgs/" + bgs[BGind], recentcData, bgLoaded); mdl.addEventListener("dataNotFound",noDataFound); } else { mdl = new modDataLoader("bgs/" + bgs[BGind], recentcData, swfLoaded); mdl.addEventListener("dataNotFound",noDataFound); } } function swfLoaded(e){ var ldr:Loader = new Loader(); ldr.contentLoaderInfo.addEventListener(Event.INIT, function mDLC(e){ main.fileRef = true; clearInterval(main.loadInt); main.modDataLoadingComplete(e); }); l1.textLabel.tf.text = bgs[BGind]; l1.setTextSize(10); ldr.loadBytes(e.binData); } } }