AS3 пауза, разной продолжительности - PullRequest
0 голосов
/ 11 января 2012

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

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 ]

2 голосов
/ 11 января 2012

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

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

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

1 голос
/ 11 января 2012

Что-то вроде этого:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...