2012-10-16 3 views
0

나는 두 개의 클래스로 구성된 스톱워치를 만들었습니다. 첫 번째는 stopwatchModel입니다. 두 번째는 스톱워치 뷰입니다. 내 스톱 워치가 작동하지만 실제 시간이 얼마나 남았는지보다 시간이 적게 걸립니다. 내 스톱워치가 현실보다 느린 것 같습니다.잘못된 시간을 보여주는 타이머를 기반으로하는 스톱워치 AS3

StopwatchModel

private function initStopwatchModel():void{ 
     timer = new Timer(100,0); 
     timer.addEventListener(TimerEvent.TIMER,onTimer); 
    } 

    private function onTimer(e:TimerEvent):void{ 
     decsec++; 
     if (decsec == 10){ 
      sec++; 
      decsec=0; 
      if (sec == 60){ 
      sec = 0; 
      min++; 
      } 
     } 
     playerTimeString = min + ":" + sec + ":" + decsec + "0"; 
     dispatchEvent(new Event("NEW_TIME")); 
    } 

StopwatchView

private function initModelEventListeners(){ 
     _model.addEventListener("NEW_TIME",onNewTime); 
    } 

    //update textoveho pola, vzdy ked sa zmeni cas 
    private function onNewTime(e:Event):void{ 
     textFieldStopWatch.text = _model.playerTimeString; 
    } 

는 대답

답변

0

타이머가 완전히 정확하지는 않지만 프레임 속도에 따라 다소 달라 지므로 가장 가까운 간격을 1 프레임 시간에 여러 번 찾습니다.

응용 프로그램이 시작될 때 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/package.html#getTimer()을 사용하여 getTimer()를 반환하고 타이머에서 측정하여 차이를 계산하는 것이 좋습니다. 이렇게하면 확실히 작동합니다.

또한이 문제는 http://www.computus.org/journal/?p=22

에 기록되어 있습니다.
관련 문제