AS3暂停,不同的持续时间



这是我正在使用的代码:

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变量,以跟踪当前的延迟。您可以从任何其他有作用域的函数中增加这个变量。

最新更新