【问题标题】:Dynamic TextField does not display the exact value动态文本字段不显示确切值
【发布时间】:2018-09-13 22:13:17
【问题描述】:

我正在构建一个 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,而且很多时候它什么也不显示,这是为什么呢?有没有比我这样做更好的方法来解决整个持续时间问题?

【问题讨论】:

    标签: actionscript-3 flash actionscript


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      • 2014-03-03
      • 1970-01-01
      相关资源
      最近更新 更多