forked from: forked from: flash on 2012-1-6

by bradsedito
♥0 | Line 88 | Modified 2013-08-23 06:11:20 | GPLv3 License
play

ActionScript3 source code

/**
 * Copyright bradsedito ( http://wonderfl.net/user/bradsedito )
 * GNU General Public License, v3 ( http://www.gnu.org/licenses/quick-guide-gplv3.html )
 * Downloaded from: http://wonderfl.net/c/5iMy
 */

// forked from YellowAfterlife's forked from: flash on 2012-1-6
// forked from programmeraxel's flash on 2012-1-6
package  
{
    import flash.display.*;
    import flash.events.*;
    import com.demonsters.debugger.MonsterDebugger;
    import flash.events.Event;
    import flash.events.TimerEvent;
    import flash.utils.Timer;
    import flash.text.TextField;
    import flash.text.TextFormat;
    public class MonsterConnector extends Sprite {
        // constructor:
        public function MonsterConnector():void {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
        // init:
        private function init(e:Event = null):void {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            // adventure begins:
            _sleep();
            _trace2();
            trace2("Initialization done.");
            // add event listeners:
            root.addEventListener("allComplete", allCompleteHandler);
            stage.addEventListener(MouseEvent.CLICK, onMouseClick);
            stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
        }
        // Startup event:
        private var loader:LoaderInfo;
        public var game:DisplayObjectContainer;
        private function allCompleteHandler(e:Event):void {
            trace2("Startup starts...");
            try {
                var loader:LoaderInfo = LoaderInfo(e.target);
                var ev:MouseEvent = new MouseEvent(MouseEvent.CLICK, true, false, 0, 0);
                if (loader.content.root.stage == null) return;
                MonsterDebugger.initialize(loader.content.root);
                MonsterDebugger.trace(this, loader.loaderURL);
                game = (loader.content as DisplayObjectContainer);
                game.addChild(output);
                stage.quality = StageQuality.LOW;
                trace2("Startup works.", game);
                //trace2('yelow');
                //var test:test_prot = new test_prot();
                //sleep(10000, function():void {
                //     game.message_btn.dispatchEvent(ev);
                // } );
            } catch (e:Error) {
                trace2("Error in startup: " + e + "\r" + e.getStackTrace());
            }
       }
       
       
        public function onMouseClick(e:MouseEvent):void {
            trace2("Click target: " + e.target);
        }
        public function onKeyDown(e:KeyboardEvent):void {
            if (e.keyCode == 192) { // [`~] key
                trace2c();
            }
        }
        //{ Sleep
        public var sleepTimer:Timer;
        public var sleepFunc:Function;
        public function sleepComplete(e:Event):void {
            sleepTimer.reset();
            sleepFunc();
        }
        public function sleep(time:uint, func:Function):void {
            sleepTimer.delay = time;
            sleepFunc = func;
            sleepTimer.reset();
            sleepTimer.start();
        }
        public function _sleep():void {
            sleepTimer = new Timer(0, 0);
            sleepTimer.addEventListener(TimerEvent.TIMER, sleepComplete);
        }

        //}
        //{ Trace2
        public var output:TextField;
        public function trace2(...data):void {
            var t:String = '';
            var l:int = data.length;
            for (var i:int = 0; i < l; i++) t += data[i] + ' ';
            output.appendText('\r' + t);
            addChild(output);
        }
        public function trace2c():void {
            output.text = '';
        }
        public function _trace2():void {
            output = new TextField();
            output.autoSize = "left";
            output.x = 10;
            output.y = 10;
            output.defaultTextFormat = new TextFormat("Courier New", 12, 0xFF0000);
            output.text = "Tracelog:";
            addChild(output);
        }
        //}        
    }
}