2014-04-07 61 views
0

我有一个不断的在我的主要游戏文件经过的时间,看起来像这条赛道的函数:AS3显示最后一次

public function timeElapsed(milliseconds:int):void 
    { 
     var time:Date = new Date(milliseconds); 
     var minutes:String = String(time.minutes); 
     var seconds:String = String(time.seconds); 
     var miliseconds:String = String(Math.round(time.milliseconds)/100); 

     if(minutes.length != 2) 
     { 
      minutes = '0' + minutes; 
     } 

     if(seconds.length != 2) 
     { 
      seconds = '0' + seconds; 
     } 

     trace(minutes + ":" + seconds + "." + miliseconds); 
    } 

我想要现在弄清楚是怎么得到它显示玩家死亡时的最后时间。我有处理对其他文件进行各种事件调用的函数,但目前我正在绘制一个关于如何从这里开始的时间到在屏幕上显示游戏的完整空白,这是它自己的单独文件。

有什么想法?

回答

1

对于计算游戏所耗费的时间,您不需要Date课程。您应该使用getTimer() - 用于计算相对时间。在游戏开始时注册当前时间已过,格式不同,如你所愿。

var start: int = getTimer(); 

//later, check difference 
myTextField.text = timeElapsed(start); 

function timeElapsed(start : int):String{ 
    var dt: int = getTimer() - start; 
    //format result as you wish 
    return someFormatResult; 
} 

Display final time,你想要可视化时间格式的结果吗?你可以使用简单的TextField

+0

对于格式化我想使用分钟:秒,毫秒是不是真的必要,但我认为这将是一个很好的补充 –

+0

嗯... 1分钟== 1000毫秒* 60秒 –

+0

如何将格式化时间使用'dt'?我不确定从哪里开始。我知道转换得到小时,分钟和秒,我只是不知道如何去从'dt'剥去时间 编辑:也许这样? 'var hrs:String =(input> 3600?Math.floor(input/3600)+':':''); var mins:String =(hrs && input%3600 <600?'0':'')+ Math.floor(input%3600/60)+':'; var secs:String =(input%60 <10?'0':'')+ input%60; return hrs + mins + secs;' –