这是我正在使用的代码:
import flash.utils.Timer;
import flash.events.TimerEvent;
//Pausing the timeline
function wait(){
stop();
var timer:Timer=new Timer(2000,1);
timer.addEventListener(TimerEvent.TIMER,waitdone);
timer.start();
}
function waitdone(e:TimerEvent){
e.currentTarget.removeEventListener(TimerEvent.TIMER,waitdone);
play();
}
当我调用以下函数时,它会暂停2秒钟,很容易。我想不出要做的是调用wait();
,再加一秒,得到3秒而不是2秒。
有简单的方法吗?
你是这样说的吗?
function wait(numberOfSeconds:int){
stop();
var timer:Timer=new Timer(numberOfSeconds * 1000);
timer.addEventListener(TimerEvent.TIMER,waitdone);
timer.start();
}
然后,根据需要的秒数,使用wait(2)或wait(3)进行调用。
这样的东西怎么样:
import flash.utils.Timer;
import flash.events.TimerEvent;
var currentDelay:Number = 2000;
//Pausing the timeline
function wait(){
stop();
var timer:Timer=new Timer(currentDelay,1);
timer.addEventListener(TimerEvent.TIMER,waitdone);
timer.start();
}
function waitdone(e:TimerEvent){
e.stop();
if(currentDelay > 10000){ //stop it after lets say when delay reaches over 11 seconds
e.currentTarget.removeEventListener(TimerEvent.TIMER,waitdone);
play();
} else {
currentDelay += 1000;
e.delay = currentDelay;
e.reset();
e.start();
}
}
一般的想法是在函数之外保留一个currentDelay变量,以跟踪当前的延迟。您可以从任何其他有作用域的函数中增加这个变量。