2013-12-09 3 views
0

안녕하세요, 저는 이것을 몇 시간 동안 해봤지만 여전히이 기능을 루프 할 수는 없지만 적어도 5 번 반복해야합니다. 그러나 한 번만 반복합니다. 하지 while 루프, 루프 사용하고있는 동안을,하지만 여전히 그것은 것입니다액션 스크립트에서 함수 루핑하기

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

그 함수 호출이 전체 Timer 객체를 중단 때문에의 EventListener 기능에 myTimer.stop()를 제거하십시오 일단 불리면.

또한 타이머를 만들 때 생성자 매개 변수에 반복 카운터를 지정할 수 있습니다.

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

myTimer.start(); 

function runMany(event:TimerEvent):void { 

//... 

이것은 실행 사이에 1 초의 지연으로 5 번 기능을 호출합니다.

또 다른 사실은 매번 리스너 함수에서 myTimer.start()를 호출 할 때마다 타이머를 한 번만 시작하면됩니다. 반복적으로 5 회 반복 실행하려고 시도합니다. 무한 루프.

은 참조 : AS3 Documentation Timer

Working with the Timer Class

관련 문제