Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Пауза AS3, разная продолжительность

Автор вопроса: PhillОтветов: 2

Вот код, который я использую:

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 секунды, а не две.

Есть ли простой способ сделать это?

timerflashactionscript-3actionscript

Ответы

Ответ 1 · рейтинг 2 · Clay Garrett

Вы имеете в виду вот так?

function wait(numberOfSeconds:int){
    stop();
    var timer:Timer=new Timer(numberOfSeconds * 1000);
    timer.addEventListener(TimerEvent.TIMER,waitdone);
    timer.start();
}

Затем вы вызываете его, используя ожидание (2) или ожидание (3) в зависимости от того, сколько секунд вы хотите.

Ответ 2 · рейтинг 1 · ToddBFisher

Как насчет такого:

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 вне своих функций, чтобы отслеживать текущую задержку, в которой вы находитесь. Вы можете увеличить эту переменную из любой другой функции, которая имеет для нее область действия.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы