2011-01-24 3 views
0

AS2로 작성된 자습서를 사용하여 AS3에서 게임을 만들었지 만 올바르게 작동하지 않습니다. 게임은 3 프레임, 시작 화면, 게임 루프 및 종료 화면이 포함되어 있습니다. 타이머는 프레임 2에서 시작하고 카운트 다운됩니다 (트레이스를 사용하여 테스트 됨). 타이머가 0에 도달하면 프레임 3 인 게임 화면으로 가고 싶지만 코드는 작동하지 않습니다.Actionscript 3 카운트 다운 타이머가 텍스트 필드에 시간을 표시하지 않고 타이머가 0에 도달해도 아무 반응이 없습니다.

var fl_SecondsToCountDown:Number = 30; 

var fl_CountDownTimerInstance:Timer = new Timer(1000, fl_SecondsToCountDown); 
fl_CountDownTimerInstance.addEventListener(TimerEvent.TIMER, fl_CountDownTimerHandler); 
fl_CountDownTimerInstance.start(); 
theTimer.text = String(fl_SecondsToCountDown); 

function fl_CountDownTimerHandler(event:TimerEvent):void 
{ 

    if(fl_SecondsToCountDown == 0){; 
     gotoAndPlay(3); 
    }else{ 

    trace(fl_SecondsToCountDown + " seconds"); 
    fl_SecondsToCountDown--; 
    } 
} 

나의 두 번째 문제점은 타이머 (TheTimer)가 시간을 표시하지 않는다는 것입니다.

편집 :

var running:Boolean = new Boolean(); 
running = false; 
var time:Number = new Number(); 
var fl_SecondsToCountDown:Number = 30; 
var fl_CountDownTimerInstance:Timer = new Timer(1000, fl_SecondsToCountDown); 
fl_CountDownTimerInstance.addEventListener(TimerEvent.TIMER, fl_CountDownTimerHandler); 
fl_CountDownTimerInstance.start(); 

function fl_CountDownTimerHandler(event:TimerEvent):void 
{ 
    time=fl_SecondsToCountDown; 

    if(time == 0){ 
     running = false; 
     trace(running); 
     gotoAndStop(3); 
    }else{ 

    trace(fl_SecondsToCountDown + " seconds"); 
    fl_SecondsToCountDown--; 
    theTimer.text = String(fl_SecondsToCountDown); 

    } 
} 
+0

값을 설정할 때 TheTimer가 있는지 확인 하시겠습니까? – zzzzBov

+2

프로그램에 오타가 있습니다 : if (fl_SecondsToCountDown == 0) {; 또한 fl_SecondsToCountDown 변수를 변경할 때 textField가 자동으로 업데이트되지 않습니다. – TheDarkIn1978

+0

오타가 아니라 복사/붙여 넣기 오류가 발생했습니다 :) 감사합니다. fl_SecondsToCountDown가 작동했습니다. 나는 그것을 배치해야했고 텍스트 필드를 다시 만들어야했습니다. ttorial 나는 텍스트 필드를 mc로 변환한다고 말한 AS2를 따르고있었습니다. 텍스트 필드로 남겨 두는 것이 옳은 일이었습니다. – RapsFan1981

답변

0

, 당신은 fl_CountDownTimerHandler 함수 내에서 theTimer를 업데이트 확인이 초기화 때 그렇지 않은 경우에만 업데이트됩니다.

내 추측에 따르면 fl_SecondsToCountDown이 이미 0 일 때 이벤트가 다시 실행되지 않으므로 마지막 카운트 다운 검사가 실행되지 않습니다. trace으로 수표를 더 추가하면 무슨 일이 일어나는지 쉽게 알 수 있습니다.

+0

감사합니다. zeh 표시 할 타이머가 있습니다. 나는 카운트 다운 체크를 발사 할 수 없었다. 나는 당신이 말한 수표라고 생각하는 것을 덧붙였다. 추적 (실행 중)이 다시 실행되지 않았습니다 – RapsFan1981

+0

알아 냈습니다. 타이머는 실제로 0에 도달하지 않으며 1 초 후에 멈 춥니 다 if 문을 if (time == 1) {... gotoAndStop (...); – RapsFan1981

관련 문제