我有代码:
var timer:Timer = new Timer(milliseconds, repititions);
timer.addEventListener(TimerEvent.TIMER, callback);
timer.start();
如果用户点击我想尽早调用回调。有没有办法强制计时器立即完成,或者停止它并自己发送TimerEvent.Timer
?
我正在寻找像补间类fforward()
这样简单的东西。
修改的
解决方案是
timer.dispatchEvent(new TimerEvent(TimerEvent.TIMER));
我试图timer.dispatchEvent(new TimerEvent("TIMER"));
做不起作用。
答案 0 :(得分:1)
var evt:TimerEvent = new TimerEvent(TimerEvent.TIMER);
timer.dispatchEvent(evt);
答案 1 :(得分:0)
按钮调用我的示例中的函数我将其称为onDoEvent 然后,onDoEvent将使用正确的“CLICK”事件调用timer事件回调。
import fl.controls.Button
var milliseconds:int = 3000;
var repititions:int = 0;
var timer:Timer = new Timer(milliseconds, repititions);
timer.addEventListener(TimerEvent.TIMER,onTimerEvent );
var btn_start:Button = new Button( );
btn_start.label = 'start';
btn_start.x = 0;
btn_start.addEventListener( MouseEvent.CLICK, onStart );
this.addChild( btn_start );
function onStart( e:Event ):void{
timer.start();
}
var btn_stop:Button = new Button( );
btn_stop.label = 'stop';
btn_stop.x = 150;
btn_stop.addEventListener( MouseEvent.CLICK, onStop );
this.addChild( btn_stop );
function onStop( e:Event ):void{
timer.stop();
}
var btn_doEvent:Button = new Button( );
btn_doEvent.label = 'Trigger Event';
btn_doEvent.x = 300;
btn_doEvent.addEventListener( MouseEvent.CLICK, onDoEvent );
this.addChild( btn_doEvent );
function onDoEvent( e:Event ):void{
onTimerEvent( new TimerEvent("CLICK") );
}
function onTimerEvent(e:TimerEvent){
trace('TimerEvent was triggered');
}
答案 2 :(得分:0)
var timer:Timer = new Timer(milliseconds, repititions);
timer.addEventListener(TimerEvent.TIMER, callback);
timer.start();
function callback(e:TimerEvent):void{
//to do what
}
以最简单的方式调用,只需像这样调用函数。
callback(null);