-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathController.as
More file actions
executable file
·121 lines (111 loc) · 3.32 KB
/
Controller.as
File metadata and controls
executable file
·121 lines (111 loc) · 3.32 KB
1
package{ // adobe import flash.display.Loader; import flash.display.LoaderInfo; import flash.display.Sprite; import flash.display.MovieClip; import flash.display.InteractiveObject; import flash.display.DisplayObject import flash.events.Event; import flash.events.MouseEvent; import flash.net.FileFilter; import flash.net.FileReference; import flash.utils.ByteArray; // // own import com.greensock.easing.Circ; import com.greensock.events.LoaderEvent; import com.kiko.display.Circle; import com.kiko.display.Rect; import com.kiko.ui.Box; import com.sorcerer.*; import com.sorcerer.LevelElement; import flash.net.URLRequest; // public class Controller extends Sprite { // managers // graphics private var whiteBox:Box; private var manager:LevelElementManager; // // // public function Controller():void { this.addEventListener(Event.ADDED_TO_STAGE, toStage); } private function toStage(e:Event):void { removeEventListener(Event.ADDED_TO_STAGE, toStage); addEventListener(Event.ENTER_FRAME, loop); createManager(); addTestElements(); createUi(); } private function createManager(){ manager = new LevelElementManager(stage); } private function addTestElements(){ addGraphic("tree.swf"); addGraphic("tree.swf"); addGraphic("tree.swf"); } private function loop(e:Event):void { } private function createUi():void { whiteBox = new Box(); addChild(whiteBox); whiteBox.title = "Stage"; whiteBox.x = 700; whiteBox.addTextButton("Browse", 0x00aaff).addEventListener(MouseEvent.CLICK, function(){ browse(); }); whiteBox.active = true; } private function addGraphic(filename:String){ var l:Loader = new Loader(); var request:URLRequest = new URLRequest("swf/"+filename); l.load( request ); var loaded_file:DisplayObject; l.contentLoaderInfo.addEventListener(Event.COMPLETE, function fileLoaded(e:Event){ var loaded_swf:DisplayObject = LoaderInfo(e.target).content; var level_element:LevelElement = new LevelElement(manager); level_element.path = "swf/"+filename; level_element.setGraphicContent(loaded_swf); addChild(level_element); manager.addGraphicElement(level_element); }); } private function browse(){ var f:FileReference = new FileReference(); var filter:FileFilter = new FileFilter("*.swf (LevelElement)", "*.swf"); f.browse([filter]); f.addEventListener(Event.SELECT, function(e:Event) { f.load(); f.addEventListener(Event.COMPLETE, function(e:Event) { f.removeEventListener(Event.COMPLETE, function(e:Event) { } ); var ref:FileReference = e.target as FileReference; var swf:Loader = new Loader(); swf.loadBytes(ref.data); swf.contentLoaderInfo.addEventListener(Event.COMPLETE, function swfLoaded(e:Event) { var loaded_swf:DisplayObject = LoaderInfo(e.target).content; var level_element:LevelElement = new LevelElement(manager); level_element.path = "swf/"+f.name; level_element.setGraphicContent(loaded_swf); addChild(level_element); manager.addGraphicElement(level_element); }); }); }); } // overrides /** * todo: auslagern in viewmanager */ override public function setChildIndex (child:DisplayObject, index:int) : void { super.setChildIndex(child, index); } }//end-class}//end-pack