Time 计算闪存中经过的时间

Time 计算闪存中经过的时间,time,elapsed,Time,Elapsed,我正在做一个测验,我需要计算做测验所花费的总时间。 我需要以HH::MM::SS.为单位显示所用的时间。有指针吗?new Date()。time以毫秒为单位返回时间 var nStart:Number = new Date().time; // Some time passes var nMillisElapsed:Number = new Date().time - nStart; var strTime:String = Math.floor(nMillisElapsed / (100

我正在做一个测验,我需要计算做测验所花费的总时间。 我需要以HH::MM::SS.为单位显示所用的时间。有指针吗?

new Date()。time以毫秒为单位返回时间

var nStart:Number = new Date().time;

// Some time passes

var nMillisElapsed:Number = new Date().time - nStart;

var strTime:String = Math.floor(nMillisElapsed / (1000 * 60 * 60)) + "::" + 
   (Math.floor(nMillisElapsed / (1000 * 60)) % 60) + "::" + 
   (Math.floor(nMillisElapsed / (1000)) % 60);

当数字小于10时,用零填充(谢谢brian)

var now:Date//
var起始日期:日期;
var startTime:数字;
//初始化计时器并启动它
函数initTimer():void{
startDate=新日期();
startTime=startDate.getTime();
//
变量计时器:计时器=新计时器(1000,0);//设置新的中断
timer.addEventListener(TimerEvent.timer,onTimer);//添加计时器侦听器
//
函数onTimer():void{
现在=新日期();
var nowTime:Number=now.getTime();
var diff:Number=nowTime startTime;
变量strTime:String=Math.floor(diff/(1000*60*60))+“:”+
零填充(数学楼层(差值/(1000*60))%60)+“:”+
零填充(数学层(差值/(1000))%60);
//显示您想要的位置
跟踪(“经过的时间:”+strTime);
}
//当数字小于10时,用零填充
函数zeroFill(myNumber:Number):字符串{
var zeroFilledNumber:String=myNumber.toString();

如果(myNumber我重新提出这个问题是为了说Brian和mica都错了根据计算机的时钟为您提供时间。用户所要做的就是将时钟向后拨几分钟,这将导致测验计时器也向后拨几分钟。或者更糟糕的是,他们可能会将时钟向后拨到开始测验之前的某个时间,而您的应用程序会认为他们在测验中花费的时间为负数o.o.o

解决方案是使用flash.utils.getTimer()。它返回自swf开始播放以来的毫秒数,而不管计算机的时钟显示什么

下面是一个例子:

var startTime:Number = getTimer();

// then after some time passes:

var elapsedMilliseconds:Number = getTimer() - startTime;
然后,您可以使用Brian的代码格式化显示时间:

var strTime:String = Math.floor(elapsedMilliseconds / (1000 * 60 * 60)) + "::" + 
(Math.floor(elapsedMilliseconds / (1000 * 60)) % 60) + "::" + 
(Math.floor(elapsedMilliseconds / (1000)) % 60);
var倒计时:定时器=新定时器(1000);
倒计时。addEventListener(TimerEvent.TIMER、timerHandler);
倒计时。开始();
函数timerHandler(e:TimerEvent):无效
{           
var minute=数学楼层(countdown.currentCount/60);
如果(分钟<10)
分钟='0'+分钟;
var秒=倒计时。当前计数%60;
如果(秒<10)
秒='0'+秒;
var timeappeased=分钟+':'+秒;
跟踪(经过的时间);
}

在本例中,您是否考虑了日期?如果有人在午夜前1分钟开始测验,该怎么办?这没有区别,晚上11点和凌晨1点之间的毫秒差应该与上午11点和下午1点之间的毫秒差相同
var strTime:String = Math.floor(elapsedMilliseconds / (1000 * 60 * 60)) + "::" + 
(Math.floor(elapsedMilliseconds / (1000 * 60)) % 60) + "::" + 
(Math.floor(elapsedMilliseconds / (1000)) % 60);
var countdown:Timer = new Timer(1000);
countdown.addEventListener(TimerEvent.TIMER, timerHandler);
countdown.start();

function timerHandler(e:TimerEvent):void
{           
    var minute = Math.floor(countdown.currentCount /  60);
    if(minute < 10)
        minute = '0'+minute;

    var second = countdown.currentCount % 60;
    if(second < 10)
        second = '0'+second;


    var timeElapsed = minute +':'+second;
    trace(timeElapsed);
}