2013-05-05 5 views
0

임의의 숫자로 설정된 타이머를 사용하는 게임을 만들고 있습니다. 타이머는이 숫자까지 카운트 한 다음 게임이 끝납니다. 플레이어가 타이머가 다 되었으면 다시 재생할 수있는 옵션을 원하지만이 작업을 수행하는 방법을 결정하는 데 문제가 있습니다. 여기에 지금과 같은 모습입니다.문제를 일으키는 AS3 타이머 이벤트

var age:int = Math.floor(Math.random()*100)+1; 
trace(age); 
var upCounter:int = 1; 
timer(); 

//timer 
function timer(){ 
var myTimer:Timer = new Timer(1000, age); 
myTimer.addEventListener("timer", timerHandler); 
myTimer.start(); 
} 

//displays timer and triggers outcome function 
function timerHandler(event:TimerEvent):void{ 
    if (upCounter < age) { 
      trace(upCounter); 
      age_txt.text = String(upCounter); 
      upCounter++; 
      } 
      else{ 
      outcome(); 
      } 
} 

문제는 "나이"이고 "upCounter"변수는 글로벌이며, 나는 "startGame"함수 안에 넣어 경우 나는 "timerHandler"로 전달할 수 없습니다. "startGame"함수 안에 넣지 않으면 게임을 다시 시작하는 방법을 모르겠습니다. 감사.

답변

0

나이를 반복하는 것으로 타이머를 정의 했습니까?

왜 TIMER_COMPLETE 이벤트를 추가하지 않는 것이 좋을까요?

myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, outcome); 

function outcome(e:TimerEvent):void 
{ 
    var myTimer:Timer = e.target as Timer; 
    myTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, outcome); 

    // prompt to play again or whatever goes here. 
} 

TIMER 이벤트 처리기에서 타이머 틱에서 발생해야하는 작업을 넣기 만하면됩니다.

관련 문제