flash on 2009-9-2
♥0 |
Line 73 |
Modified 2009-09-02 22:14:25 |
MIT License
archived:2017-03-20 13:34:23
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; // 特に意味はない
}
}