TimeTrigger
指定した秒数で関数を発動するクラス
♥0 |
Line 63 |
Modified 2012-09-02 16:03:30 |
MIT License
archived:2017-03-20 16:52:27
ActionScript3 source code
/**
* Copyright t2421 ( http://wonderfl.net/user/t2421 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/vmml
*/
package {
import flash.events.Event;
import flash.display.Sprite;
public class TimeTriggerMain extends Sprite {
private var timeTrigger:TimeTrigger;
public function TimeTriggerMain() {
addEventListener(Event.ADDED_TO_STAGE,add);
}
private function add(e:Event):void{
timeTrigger = new TimeTrigger(1,function():void{trace("hogehoge")});
changeFrameRate(60);
timeTrigger.start();
trace("start");
this.addEventListener(Event.ENTER_FRAME,loop);
}
private function loop(e:Event):void{
//trace("looop");
}
private function changeFrameRate(rate:Number):void{
stage.frameRate = rate;
timeTrigger.frameRate = rate;
}
}
}
import flash.display.Sprite;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.utils.Timer;
class TimeTrigger extends Sprite{
private var _interval:Number = 1;
private var _callback:Function;
private var _count:uint = 0;
private var _frameRate:uint;
public function TimeTrigger(interval:Number=1,callback:Function=null){
_interval = interval;
_callback = callback;
}
public function setParams(interval:Number=1,callback:Function=null):void{
_interval = interval;
_callback = callback;
}
public function reset():void{
this.removeEventListener(Event.ENTER_FRAME,loop);
_count = 0;
}
public function pause():void{
this.removeEventListener(Event.ENTER_FRAME,loop);
}
public function start():void{
trace("startTimer");
this.addEventListener(Event.ENTER_FRAME,loop);
}
private function loop(e:Event):void{
if(_count == _frameRate*_interval){
_callback();
_count=0;
}else{
_count++;
}
}
public function set frameRate(rate:uint):void{
_frameRate = rate;
}
}