Вызов таймера событий Listener в начале as3 - PullRequest
2 голосов
/ 11 июня 2011

У меня есть код:

var timer:Timer = new Timer(milliseconds, repititions);
timer.addEventListener(TimerEvent.TIMER, callback);
timer.start();

и если пользователь нажмет кнопку, я хочу позвонить пораньше. Был ли способ либо заставить таймер немедленно завершить работу, либо остановить его и отправить TimerEvent.Timer самостоятельно?

Я ищу что-то простое, как классы подростков fforward().

EDIT

Решение было

timer.dispatchEvent(new TimerEvent(TimerEvent.TIMER));

Я пытался сделать timer.dispatchEvent(new TimerEvent("TIMER"));, который не работает.

Ответы [ 3 ]

1 голос
/ 22 июня 2011
var evt:TimerEvent = new TimerEvent(TimerEvent.TIMER);
timer.dispatchEvent(evt);
0 голосов
/ 12 июля 2011
var timer:Timer = new Timer(milliseconds, repititions);
timer.addEventListener(TimerEvent.TIMER, callback);
timer.start();

function callback(e:TimerEvent):void{
   //to do what
}

Чтобы вызвать самый простой способ, просто вызовите функцию следующим образом.

callback(null);
0 голосов
/ 11 июня 2011

В моем примере кнопка вызывает функцию, я вызываю ее на DoEvent.Затем onDoEvent вызовет функцию обратного вызова события таймера, используя соответствующее событие «CLICK».

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');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...