Avatar billede spt Nybegynder
18. april 2003 - 14:21 Der er 13 kommentarer og
1 løsning

nedtæller

jeg vil gerne lave en "nedtæller" som man kan indstille til et tidsrum, f.eks. 3:20:10 (timer:min:sek)

og så skal den kunne tælle ned til 0:0:0 og sige en lyd

jeg bruger flash 4.0

jeg har ikke særligt meget erfaring med programmeringsdelen i flash.

Det er vigtigt at man kan indstille tiden.
Avatar billede baitianlong Nybegynder
18. april 2003 - 14:32 #1
onClipEvent (load) {
    timer = 3;
    minutter = 20;
    sekunder = 10;
    starttid = new Date();
}
onClipEvent (enterFrame) {
    nutid = new Date();
    if (nutid.getSeconds() != starttid.getSeconds()) {
        sekunder--;
        if (sekunder == -1) {
            sekunder = 59;
            minutter--;
            if (minutter == -1) {
                minutter = 59;
                timer--;
            }
        }
        starttid = new Date();
        minutter = minutter < 10 ? "0" + minutter : minutter;
        sekunder = sekunder < 10 ? "0" + sekunder : sekunder;
        _root.display = timer + ":" + minutter + ":" + sekunder;
    }
}
Avatar billede spt Nybegynder
18. april 2003 - 14:42 #2
hvor skal det stå henne i frame'en eller i ens tekstboxe eller hva' (jeg er ret grøn)
Avatar billede baitianlong Nybegynder
18. april 2003 - 14:45 #3
Og så lige det med lyden...

Lav et movieclip hvor der står stop(); i første frame og lyden kommer i 2. frame (hvor der også står stop();)

Og brug dette redigerede script på movieclippet. Husk dynamisk tekstfelt i _root med variablen "display"

onClipEvent (load) {
    timer = 3;
    minutter = 20;
    sekunder = 10;
    starttid = new Date();
}
onClipEvent (enterFrame) {
    nutid = new Date();
    if (nutid.getSeconds() != starttid.getSeconds()) {
        sekunder--;
        if (sekunder == -1) {
            sekunder = 59;
            minutter--;
            if (minutter == -1) {
                minutter = 59;
                timer--;
            }
        }
        starttid = new Date();
        minutter = length(minutter) == 1 ? "0" + minutter : minutter;
        sekunder = length(sekunder) == 1 ? "0" + sekunder : sekunder;
        _root.display = timer + ":" + minutter + ":" + sekunder;
    }
    if(timer == 0 && minutter == 0 && sekunder == 0 && !nr2) {
        this.play()
        nr2 = true;
    }
}

Jeg kan desværre ikke give dig en fil, da jeg ikke har flash 4. Men ovenstående virker efter hensigten.
Avatar billede mat Nybegynder
18. april 2003 - 14:48 #4
legende.dk > ifølge min dokumentation er Date objektet ikke engang en del af flash 4? :/
Avatar billede baitianlong Nybegynder
18. april 2003 - 14:50 #5
Billigt lort mand !!!! Hvad med getTimer() er den med ?

onClipEvent (load) {
    timer = 3;
    minutter = 20;
    sekunder = 10;
    starttid = getTimer();
}
onClipEvent (enterFrame) {
    nutid = getTimer();
    if (nutid > starttid + 1000) {
        sekunder--;
        if (sekunder == -1) {
            sekunder = 59;
            minutter--;
            if (minutter == -1) {
                minutter = 59;
                timer--;
            }
        }
        starttid = getTimer();;
        minutter = length(minutter) == 1 ? "0" + minutter : minutter;
        sekunder = length(sekunder) == 1 ? "0" + sekunder : sekunder;
        _root.display = timer + ":" + minutter + ":" + sekunder;
    }
    if(timer == 0 && minutter == 0 && sekunder == 0 && !nr2) {
        this.play()
        nr2 = true;
    }
}
Avatar billede spt Nybegynder
18. april 2003 - 14:53 #6
jeg fatter hat
Avatar billede baitianlong Nybegynder
18. april 2003 - 15:04 #7
Vælg INSERT -> NEW SYMBOL -> MOVIECLIP, skriv stop() i første og anden frame, og hiv lyden ind i 2. frame.

Træk movieclippet ind i filmen og skriv ovenstående script som action på movieclippet, lav et dynamisk tekstfelt med variablen "display"...

(o;
Avatar billede mat Nybegynder
18. april 2003 - 15:12 #8
nopz, du kan heller ikke bruge onClipEvent så det skal frame loopes:

frame 1:

timer = 3;
minutter = 20;
sekunder = 10;
starttid = getTimer();

frame 2:

nutid = getTimer();
    if (nutid > starttid + 1000) {
        sekunder--;
        if (sekunder == -1) {
            sekunder = 59;
            minutter--;
            if (minutter == -1) {
                minutter = 59;
                timer--;
            }
        }
        starttid = getTimer();
        minutter = length(minutter) == 1 ? "0" add minutter : minutter;
        sekunder = length(sekunder) == 1 ? "0" add sekunder : sekunder;
        display = timer add ":" add minutter add ":" add sekunder;
    }
    if(timer == 0 && minutter == 0 && sekunder == 0 && !nr2) {
      play()
      nr2 = true;
}



frame 3:

gotoAndPlay(2);




..using legendes script i en flash 4 udgave (håber jeg da :P)
Avatar billede spt Nybegynder
18. april 2003 - 15:17 #9
der er ikke noget der hedder script
Avatar billede baitianlong Nybegynder
18. april 2003 - 15:17 #10
Du mangler lige en klamme (o; og så skal lyden komme i frame 4 med denne ændring...

  if(timer == 0 && minutter == 0 && sekunder == 0) {
      gotoAndPlay(4);
  }

Så tror jeg den er der !
Avatar billede mat Nybegynder
18. april 2003 - 15:25 #11
næsten, hvis der osse skal være inputfelter, med indstillinger skal vi lige bruge en frame mere :)

så nu ser den sådan her ud hos mig:

frame 1:

stop();

Her er der så 3 inputfelter med hver deres navn, et for timer, et for minutter og et for sekunder. og en knap med denne action:

on (release) {
    gotoAndPlay(2);
}



i frame 2:

timer = input_timer; // navn på inputfelt i frame 1
minutter = input_minutter; // navn på inputfelt i frame 1
sekunder = input_sekunder; // navn på inputfelt i frame 1
starttid = getTimer();



i frame 3:

nutid = getTimer();
    if (nutid > starttid + 1000) {
        sekunder--;
        if (sekunder == -1) {
            sekunder = 59;
            minutter--;
            if (minutter == -1) {
                minutter = 59;
                timer--;
            }
        }
        starttid = getTimer();
        minutter = length(minutter) == 1 ? "0" add minutter : minutter;
        sekunder = length(sekunder) == 1 ? "0" add sekunder : sekunder;
        display = timer add ":" add minutter add ":" add sekunder;
    }
    if(timer == 0 && minutter == 0 && sekunder == 0 && !nr2) {
      gotoAndPlay(5);
}




i frame 4:

gotoAndPlay(3);


og i frame 5 skal lyden så vist ligge tror jeg nok? :))
Avatar billede baitianlong Nybegynder
18. april 2003 - 15:29 #12
Det ser rigtigt ud.... Er du nede med det 'spt' ? (o;
Avatar billede spt Nybegynder
18. april 2003 - 16:14 #13
ja nu virker det!
Avatar billede baitianlong Nybegynder
18. april 2003 - 18:43 #14
mat, skal vi ikke dele ? Det er mest fair
(o;
http://www.eksperten.dk/spm/341953
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