/ Published in: ActionScript 3
Often in my apps, some primary data are needed to be loaded, saved and then the App start to load the first page. Here is the best Main class I have so far come up with, that I use for my own apps.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
package org.epayam.AppName { import com.greensock.events.LoaderEvent; import com.greensock.loading.LoaderMax; import com.greensock.loading.XMLLoader; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import org.epayam.AppName.ast.Dta; public class Main extends Sprite { public static var p:Sprite; //path private const initFileUrl:String = "xml/SomeFile.xml"; public function Main():void { if (stage) { init(); } else { addEventListener(Event.ADDED_TO_STAGE, init); } } /*~~~~~~~~~~~~~~~~~~~~~~~~(Private)~~~~~~~~~~~~~~~~~~~~~~~*/ private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); loadInitFiles(); } private function loadInitFiles():void { var loader:XMLLoader = new XMLLoader(initFileUrl, {name: "data", onComplete: dataLoaded}); loader.load(); } private function dataLoaded(e:LoaderEvent):void { setData(); setupApp(); showApp(); } private function setData():void { Dta.pgeTxt = LoaderMax.getContent("data"); } private function setupApp():void { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; App.p = this; // to be found by other classes } private function showApp():void { app.init(); // an empty frame for loagding pages } } }