Frage

Ich baue ein Quiz und ich brauche die Gesamtzeit berechnen genommen das Quiz zu tun. und ich brauche die Zeit in HH :: MM :: SS..any Zeiger?

genommen anzuzeigen
War es hilfreich?

Lösung

new Date (). Zeit gibt die Zeit in Millisekunden an.

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);

Andere Tipps

I wiederzubeleben, diese Frage zu sagen, dass beide Brian und Glimmer sind falsch. ein neues Date anlegen () gibt Ihnen die Zeit nach der Uhr des Computers. Alle jemand tun muss, festgelegt ist ihre Uhr wieder einige Minuten, und das wäre das Quiz Timer verursacht auch einige Minuten zu gehen. Oder noch schlimmer, könnten sie ihre Uhr zurück auf eine Zeit eingestellt, bevor sie das Quiz gestartet, und Ihre Anwendung würde denken, dass sie einen negativen Betrag von Zeit zu nehmen, das Quiz verbracht. ò.ó

Die Lösung ist die Verwendung flash.utils.getTimer (). Es gibt die Anzahl der Millisekunden seit der swf spielen begann, unabhängig davon, was die Uhr des Computers sagt.

Hier ist ein Beispiel:

var startTime:Number = getTimer();

// then after some time passes:

var elapsedMilliseconds:Number = getTimer() - startTime;

Dann können Sie Brians Code verwenden, um die Zeit für die Anzeige formatiert werden:

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

mit Null füllen, wenn die Anzahl kleiner als 10 (Danke brian)

var now:Date; //
var startDate:Date;
var startTime:Number; 
// initialize timer and start it
function initTimer():void{
    startDate = new Date();
    startTime = startDate.getTime();
    //
    var timer:Timer = new Timer(1000,0); // set a new break
        timer.addEventListener(TimerEvent.TIMER, onTimer); // add timer listener
    //
    function onTimer():void{
        now=new Date();
        var nowTime:Number = now.getTime();
        var diff:Number = nowTime-startTime;
        var strTime:String = Math.floor(diff / (1000 * 60 * 60)) + ":" + 
                            zeroFill(Math.floor(diff / (1000 * 60)) % 60) + ":" + 
                            zeroFill(Math.floor(diff / (1000)) % 60);
        // display where you want
        trace('time elapsed : ' + strTime);
    }
    // fill with zero when number is less than 10
    function zeroFill(myNumber:Number):String{
        var zeroFilledNumber:String=myNumber.toString();
        if(myNumber<10){
            zeroFilledNumber = '0'+zeroFilledNumber;
        }
        return zeroFilledNumber;
    }

    // start TIMER
    timer.start();

}
initTimer();
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);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top