flash on 2009-9-2

by keno42
♥0 | Line 73 | Modified 2009-09-02 22:14:25 | MIT License
play

ActionScript3 source code

/**
 * Copyright keno42 ( http://wonderfl.net/user/keno42 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/osjo
 */

package {
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.utils.getTimer;
    import flash.text.TextField;
    public class FlashTest extends Sprite {
        private var tf:TextField = new TextField();
        private var list:Array = [];
        private var NUM:int = 10000;
        private var count:int = 0;
        private var limit:int = 10;
        public function FlashTest() {
            // write as3 code here..
            tf.autoSize = "left";
            addChild(tf);
            
            for( var i:int = 0; i < NUM; i++ ){
                list.push( new Test );
            }
            tf.appendText("開始時間: " + String(getTimer()) + "\n");
            this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
        }
        private function onEnterFrame(e:Event):void{
            count++
            for( var i:int = 0; i < NUM; i++ ){
                list[i].update();
            }
            if( count == limit ){
                this.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
                nextStep();
            }
        }
        private function nextStep():void{
            tf.appendText("1つのリスナーで処理が終わった: " + String(getTimer()) + "\n");
            for( var i:int = 0; i < NUM; i++ ){
                list[i].startUpdate();
            }
            count = 0;
            this.addEventListener(Event.ENTER_FRAME, onEnterFrame2);
        }
        private function onEnterFrame2(e:Event):void{
            count++
            if( count == limit ){
                this.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
                lastStep();
            }
        }
        private function lastStep():void{
            tf.appendText("各自のリスナーで処理が終わった: " + String(getTimer()) + "\n");
            for( var i:int = 0; i < NUM; i++ ){
                list[i].endUpdate();
            }
            tf.appendText("おまけ、リスナーはがしおわった: " + String(getTimer()) + "\n");
        }
    }
}

import flash.display.Sprite;
import flash.events.Event;

class Test extends Sprite
{
    public function Test(){
    }

    public function startUpdate():void{
        this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
    }
    public function endUpdate():void{
        this.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
    }
    private function onEnterFrame(e:Event):void{
        update();
    }
    public function update():void{
        1; // 特に意味はない
    }
}