Avatar billede jakwag Nybegynder
14. oktober 2003 - 18:36 Der er 11 kommentarer og
1 løsning

det underligste?

Hej

Det her fatter jeg ikke en lyd af.
Jeg har en preloader som osse regner ud hvor mange sekunder som der ca er tilbage af downloaden.

stop();
//********************************
// get times
//********************************
//
getTimes = function (sek) {
    trace(mins);
    for (var i = sek; i>0; i=i) {
        if (Math.floor(i/60)>0) {
            var mins = Math.floor(i/60);
            i = i-(mins*60);
        } else {
            var seks = i;
            i = 0;
        }
    }
    if (mins == undefined) {
        mins = "0";
    }
    if (seks == undefined) {
        seks = "0";
    }
    return mins+" minutter og "+seks+" sekunder";
};
trace(getTimes(89));
this.onEnterFrame = function() {
    var isloaded = this.getBytesLoaded();
    var total = this.getBytesTotal();
    var procent = isloaded/total*100;
    var timePassed = getTimer()/1000;
    var timeLeft = (timePassed/procent)*(100-procent);
    left_txt.text = "Filmen stater om"+newline+getTimes(Math.round(timeLeft));
    bar_mc._xscale = procent;
    if (isloaded == total) {
        this.gotoAndPlay(2);
        this._parent.downloadet = true;
        this._parent.playing = true;
        this._parent.player_mc.play_mc.gotoAndStop(2);
        delete this.onEnterFrame;
    }
};

getTimes functionen omregner et antal sekunder til minutter og sekunder.

problem:
DETTE VIRKER KUN HVIS DER STÅR EN TRACE I ØVERSTE LINIE AF FUNKTIONEN?!?!?

meget sært synes jeg. hvis jeg fjerner den trace tæller den pludselig op til hundrede.

: | Jakob
Avatar billede jakwag Nybegynder
14. oktober 2003 - 18:38 #1
det er kun inde i enterframe functionen det ikke virker.

trace(getTimes(89)); giver fint "1 minutter og 29 sekunder"
Avatar billede jakwag Nybegynder
14. oktober 2003 - 18:39 #2
1 minutter...? hhhm.. men det er da det mindste problem.
Avatar billede togsverd1985 Praktikant
14. oktober 2003 - 18:51 #3
1 minut(ter) :D

du kunne også bruge kode til at ændre det men ovenstående er at springe over hvor gærdet er lavest :)
Avatar billede barklund Nybegynder
14. oktober 2003 - 20:07 #4
Men jeg vil nu nok sige, at din getTimes() kan skrives som:

getTimes = function(s) {
    var m = Math.floor(sek/60);
    return m+" minut"+(m > 0 ? "ter" : "")+" og "+(s%60)+" sekunder";
}

Hvilket er lidt nemmere...
Avatar billede barklund Nybegynder
14. oktober 2003 - 20:12 #5
Derudover skal din beregning vist være:

var timeLeft = Math.round(100*timePassed/procent-timePassed);

Altså hvor lang tid har det taget at hente 1% (timePassed/procent) gange 100 for at finde tiden det tager at hente 100% (100*timePassed/procent) minus den tid, som der indtil nu er gået.
Avatar billede jakwag Nybegynder
15. oktober 2003 - 10:31 #6
barklund > hehe - okay. Så kan det osse være at jeg slipper af med mit sindsyge trace problem.

prøver lige...
Avatar billede jakwag Nybegynder
15. oktober 2003 - 14:12 #7
det virker jo perfekt.
(m > 1 ? "ter" : "") det er en sjov linie, så en har jeg ikke set før. Jeg kan sagtens se hvad den gør.

Smid et svar.
Avatar billede barklund Nybegynder
15. oktober 2003 - 14:32 #8
OK :)
Avatar billede barklund Nybegynder
15. oktober 2003 - 14:32 #9
Hvad kendte du ikke? conditional? altså

expression ? statement1 : statement2;
Avatar billede jakwag Nybegynder
15. oktober 2003 - 15:09 #10
selvfølgelig kender jeg if else osv. men ikke på den måde.
Avatar billede barklund Nybegynder
15. oktober 2003 - 15:18 #11
Det er en lille short-hand if-then-else - og den kaldes "conditional".

Du kan også skrive:

x < 0 ? x = -x : null;

For:

if (x < 0) x = -x;

Samme resultat... :)
Avatar billede jakwag Nybegynder
15. oktober 2003 - 15:28 #12
tak, det er super.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester