我创建了由两个类组成的秒表。首先是stopwatchModel。第二是秒表视图。我的秒表正在工作,但它显示的时间少于实际持续时间。看起来我的秒表比现实慢。
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 :(得分:0)
答案 1 :(得分:0)
因为定时器不完全准确,但它在某种程度上取决于帧速率,因此它找到的最接近的间隔是多帧到一帧时间。
我建议你在应用程序启动时使用http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/package.html#getTimer()保存getTimer(),然后在计时器上测量它并计算差异 - 这肯定会有用。