2013-12-09 3 views
0

привет, ребята, я пробовал это часами, но все равно я не могу зацикливать эту функцию, по крайней мере, я хочу повторить ее до 5 раз, но она только цикл за один раз, я попробовал используя для цикла, в то время, и сделать время, но все равно это будет не петляЗацикливание функции в скрипте действия

var myTimer:Timer = new Timer(1000); // 1 second 
myTimer.addEventListener(TimerEvent.TIMER, runMany); 

myTimer.start(); 

function runMany(event:TimerEvent):void { 
myTimer.stop(); 
myTimer.start(); 
trace("runMany() called @ " + getTimer() + " ms"); 

if(getTimer() > 3000) 
{ 
    //random call of captopn and costumer in 3 seconds 
    myTimer.stop(); 

    capsChoice = randomRange(1, 3);//random caption 
    costumChoice = randomRange(1, 3);//randomcostum 

    //condition in caption 
    more codes in here………... 

} 

}

ответ

1

Попробуйте удалить myTimer.stop() в функции EventListener, потому что вызов функции останавливает весь объект Timer как только он называется.

Кроме того, при создании таймера вы можете дать ему счетчик повторов в параметрах конструктора.

var myTimer:Timer = new Timer(1000, 5); // 1 second, repeat 5 times 
myTimer.addEventListener(TimerEvent.TIMER, runMany); 

myTimer.start(); 

function runMany(event:TimerEvent):void { 

//... 

это вызовет функцию 5 раз с задержкой в ​​1 секунду между выполнением.

И еще одно, что нужно помнить, вам нужно только запустить таймер один раз, если вы каждый раз вызываете myTimer.start() в функции прослушивателя, он будет снова и снова пытаться выполнить петли из 5 исполнений, что приведет к бесконечный цикл.

Смотрите также: AS3 Documentation Timer

Working with the Timer Class

Смежные вопросы