以下是我正在使用的代码:
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秒。
有没有一种简单的方法可以做到这一点?
答案 0 :(得分:2)
function wait(numberOfSeconds:int){
stop();
var timer:Timer=new Timer(numberOfSeconds * 1000);
timer.addEventListener(TimerEvent.TIMER,waitdone);
timer.start();
}
然后使用wait(2)或wait(3)调用它,具体取决于你想要的秒数。
答案 1 :(得分:1)
这样的事情:
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变量,以跟踪当前的延迟。您可以从具有范围的任何其他函数中增加此变量。