Actionscript 3 AS3带按钮播放、暂停和复位的定时器间隔

Actionscript 3 AS3带按钮播放、暂停和复位的定时器间隔,actionscript-3,flash,timer,setinterval,Actionscript 3,Flash,Timer,Setinterval,我试图做一个定时器间隔,有按钮播放,暂停和复位。 时间间隔有4个部分,每个部分将在前一部分完成后继续 第节: 截面A=2分钟 B段=20秒 截面C=3分钟 D段=30秒 例如: A段完成倒计时2分钟后,计时器将自动重置为20秒 B段完成倒计时20秒后,计时器将自动重置为3分钟 C段完成倒计时3分钟后,计时器将自动重置为30秒 在D部分完成倒计时30秒后,它将跳入“X”帧 在倒计时期间,用户可以随时暂停和继续播放。或重置并从A段背面开始 目前,我已经创建了间隔,但是,当涉及到B部分时,它停止计

我试图做一个定时器间隔,有按钮播放,暂停和复位。 时间间隔有4个部分,每个部分将在前一部分完成后继续

第节:

  • 截面A=2分钟
  • B段=20秒
  • 截面C=3分钟
  • D段=30秒
例如:

  • A段完成倒计时2分钟后,计时器将自动重置为20秒
  • B段完成倒计时20秒后,计时器将自动重置为3分钟
  • C段完成倒计时3分钟后,计时器将自动重置为30秒
  • 在D部分完成倒计时30秒后,它将跳入“X”帧
  • 在倒计时期间,用户可以随时暂停和继续播放。或重置并从A段背面开始
  • 目前,我已经创建了间隔,但是,当涉及到B部分时,它停止计数。这是我的代码:

    The `$` character is just a shortcut for `window.jQuery`.
    var mins:Number = 0;
    var sec:Number = 5;
    var section:Number = 1;
    var timerInterval;
    
    function timer() {
        sec--;
        if (sec == 0 && mins == 0) {
            clearInterval(timerInterval);
            sec = sec + 10;
            sec--;
        }
    
        if (sec == -1) {
            sec = 59;
            mins--;
        }
    
        if (sec<10) {
            timer_txt.text = mins+":"+"0"+sec;
        } else {
            timer_txt.text = mins+":"+sec;
        }
    }
    
    if (sec == -1) {
        sec = 59;
        mins--;
    }
    
    if (sec<10) {
        timer_txt.text = mins+":"+"0"+sec;
    } else {
        timer_txt.text = mins+":"+sec;
    }
    
    timerInterval = setInterval(timer, 1000);
    
    “$”字符只是“window.jQuery”的快捷方式。 var分钟数:数字=0; 变量秒:数值=5; var段:编号=1; var时间神经; 函数计时器(){ 第二节; 如果(秒=0和分钟=0){ clearInterval(timerInterval); 秒=秒+10; 第二节; } 如果(秒==-1){ 秒=59; 分钟--; }
    if(sec您可以使用
    Timer
    类很好地实现这一点。延迟存储在一个数组中(以毫秒为单位)。计时器每次完成前一个延迟时都为自己分配一个新的延迟值。下面的代码应该很容易理解

    var delayList:Array = new Array(1000, 2000, 3000, 4000);
    var iteration:uint = 0;
    
    var timer:Timer = new Timer(delayList[0], delayList.length);
    timer.addEventListener(TimerEvent.TIMER, timerNext);
    timer.start();
    
    function timerNext(e:TimerEvent):void {
        if(++iteration < delayList.length) {
            timer.delay = delayList[iteration];
            trace("Next: ", delayList[iteration]);
        } else {
            trace("Done!");
        }
    }
    
    var-delayList:Array=新数组(1000200030004000);
    var迭代:uint=0;
    变量计时器:计时器=新计时器(delayList[0],delayList.length);
    timer.addEventListener(TimerEvent.timer,timerNext);
    timer.start();
    函数timerNext(e:TimerEvent):无效{
    if(++迭代
    因此,在您的情况下,延迟列表将是
    [120000,20000,180000,30000];