0

actionscriptを使用してフラッシュでタイムアップカウンターを作成したいと思います。分/秒はうまく表示されますが、問題は、時間が0ではなく1で始まることです。これは次のコードです。

import flash.utils.Timer;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.globalization.DateTimeFormatter;

var timer:Timer = new Timer(100);
timer.start();
timer.addEventListener(TimerEvent.TIMER, timerTickHandler);
var timerCount:int = 0;

function timerTickHandler(Event:TimerEvent):void
{
    timerCount += 100;
    toTimeCode(timerCount);
}

function toTimeCode(milliseconds:int) : void {
    //create a date object using the elapsed milliseconds
    var time:Date = new Date(milliseconds);

    //define minutes/seconds/mseconds
    var hours:String = String(time.hours);
    var minutes:String = String(time.minutes);
    var seconds:String = String(time.seconds);


    //add zero if neccecary, for example: 2:3.5 becomes 02:03.5
    hours = (hours.length != 2) ? '0'+hours : hours;
    minutes = (minutes.length != 2) ? '0'+minutes : minutes;
    seconds = (seconds.length != 2) ? '0'+seconds : seconds;




    //display elapsed time on in a textfield on stage
    timer_txt.text = hours + ":" + minutes + ":" + seconds;

}

私はすべてを試しましたが、カウンターが開始するときはまだ時間=1です!!!

4

1 に答える 1

0

Dateサマータイムを自動的に処理するため、時間のオフセットが発生する可能性があると思います。代わりに UTC 値を使用してみてください。

var hours:String = String(time.hoursUTC);
var minutes:String = String(time.minutesUTC);
var seconds:String = String(time.secondsUTC);
于 2013-03-24T10:24:52.000 に答える