我正在构建一个Flash桌面测验应用,我想计算用户完成测验需要多长时间。所以我这样做是为了计算用户打开第一帧和到达最后一帧之间的持续时间:
//Code in the first Frame:
var startTime:Date = new Date();
var startMinutes:Number = startTime.getMinutes();
var startSeconds:Number = startTime.getSeconds();
这是最后一帧中的代码:
//Code in the last Frame:
var endTime:Date = new Date();
var endMinutes:Number = endTime.getMinutes();
var endSeconds:Number = endTime.getSeconds();
var minutesDuration:Number = endMinutes - startMinutes;
var secondsDuration:Number = endSeconds - startSeconds;
durationTextField.text=String(minutesDuration)+":"+String(secondsDuration);
问题在于durationTextField
,它没有显示持续时间,有时会显示一个随机数,如2或3,很多时候它没有显示任何内容,为什么会这样?有什么比我为什么更好的方法来处理整个持续时间问题?
答案 0 :(得分:1)
根据此simple fonction和getTimer()函数,您将获得第一帧和最后一帧之间的准确时间。
在第一帧:
private function toTimeCode(milliseconds:int):String
{
var seconds:int = Math.floor((milliseconds/1000) % 60);
var strSeconds:String = (seconds < 10) ? ("0" + String(seconds)):String(seconds);
var minutes:int = Math.round(Math.floor((milliseconds/1000)/60));
var strMinutes:String = (minutes < 10) ? ("0" + String(minutes)):String(minutes);
var strMilliseconds:String = milliseconds.toString();
strMilliseconds = strMilliseconds.slice(strMilliseconds.length -3, strMilliseconds.length)
var timeCode:String = strMinutes + ":" + strSeconds + ':' + strMilliseconds;
return timeCode;
}
private var startTime:int = getTimer();
在最后一帧:
private var endTime:int = getTimer();
durationTextField.text = toTimeCode(endTime - startTime);