Avatar billede baitianlong Nybegynder
21. januar 2002 - 00:54 Der er 42 kommentarer og
1 løsning

sekundtæller

Hvad skal actionscriptet være i en sekundtæller, der skal starte med nul, og derefter tælle sekunder (og evt. millisekunder) ??
Avatar billede paask Nybegynder
21. januar 2002 - 01:06 #1
Hvis du sætter dette AC på et movieclip

onClipEvent(load){
time = getTimer();
}

onClipEvent(enterFrame){
time = time + getTimer();
}

vil du få et out-put i antal milisekunder. Det kan du så ændre med forskellige math funktioner hvis du vil. Noget i den stil?

Avatar billede lingoman Nybegynder
21. januar 2002 - 01:16 #2
Hi paask, det er længe siden !
:)
Avatar billede baitianlong Nybegynder
21. januar 2002 - 01:17 #3
skal jeg så i samme movie clip lave en dynamisk tekstboks med variablen \"time\" i ?

P.S. den skriver der er fejl i dit script, jeg har copy-pastet herfra !!

Kan man ikke sætte en variabel

var sekunder = (0 + etellerandet.getSeconds())

eller lign. ??!?
Avatar billede paask Nybegynder
21. januar 2002 - 01:17 #4
Hey lingodude ;0)

Jeps, har enormt stress op til eksamen på fredag, så jeg er lidt fraværende, lidt ude af min normale rytme...
Avatar billede paask Nybegynder
21. januar 2002 - 01:21 #5
Du laver et dynamisk tekst felt i _root. Dvs ikke inde i movieclippet, bare i samme timeline. At du får en fejl kan jeg ikke forstå, prøv lige engang til ;0)

Så skal der stå

onClipEvent(load){
time = getTimer();
}

onClipEvent(enterFrame){
_root.time = time + getTimer();
}

Hvis du kun vil have sekunder kan du skrive

onClipEvent(enterFrame){
_root.time = Math.floor((time + getTimer())/1000);
}

Hvis du vil have sekunder.milisekunder (ex 1.259) kan du nøjes med

onClipEvent(enterFrame){
_root.time =(time + getTimer())/1000;
}

Avatar billede paask Nybegynder
21. januar 2002 - 01:24 #6
En variabel til sekunder har jeg egentligt lige gjort, men du kan også gøre således:

onClipEvent(load){
time = getTimer();
}

onClipEvent(enterFrame){
var sek = Math.floor((time + getTimer())/1000);
}

Så indeholder variablen sek antal sekunder fra det øjeblik movieclippet forekommer i din movie :0)
Avatar billede baitianlong Nybegynder
21. januar 2002 - 01:26 #7
skal det script (begge dele) stå i hovedfilmen, eller i symbolet/movieclippet.
Avatar billede lingoman Nybegynder
21. januar 2002 - 01:29 #8
Jeg tror at legende.dk vil have tælleren til at starte fra nul, så vi må lige trække start værdien fra

onClipEvent(load){
                      starttime = getTimer();
                      }

onClipEvent(enterFrame){
                      milliTime =  getTimer() - starttime;  // resultat i molli sekunder
                      _root.time = Math.floor(milliTime/1000); // vis resultat i sekunder
                      }

time er varibel navnet for det dynamiske tekstfelt på hovedtidslinien

mvh geo
Avatar billede paask Nybegynder
21. januar 2002 - 01:29 #9
Du skal sætte det direkte på movieclippet, ikke indeni. Vi benytter ikke movieclippet til andet end at benytte de clip events. Dvs. movie clippet kan sagtens være tomt.

Du kan også benytte frame scripts istedet hvis du hellere vil, det er bare nødvendigt at du har en løkke funktion. Så kan du skrive dette på 1. frame

time = getTimer();
var sek = Math.floor((time + getTimer())/1000);

og i frame 2 skriver du så gotoAndPlay(1);

Avatar billede baitianlong Nybegynder
21. januar 2002 - 01:29 #10
Jeg har en preloader, som det skal bruges i. Det er den sædvanlige model med loadbar og procent

du ved...

var procent = ((getBytesLoaded()/getBytesTotal())*100)

Men så vil jeg også have et felt hvor i der står hvor lang tid, den har preloaded.. Smart ikke ?
Avatar billede paask Nybegynder
21. januar 2002 - 01:31 #11
Kan være du har fat i noget der geo :0)

I hvert fald burde det virke fino nu, eller hvordan står det til legende.dk ?
Avatar billede paask Nybegynder
21. januar 2002 - 01:34 #12
Den preloader du har, er den skrevet i frame script (højst sandsynligt) eller også på et movieclip? Hvis du allerede har en frame løkke til din preloader, så er det ovenstående lige til at indsætte der også. Movieclip funktionen fungerer blot også selv om selve din film befinder sig i samme frame...
Avatar billede baitianlong Nybegynder
21. januar 2002 - 01:34 #13
paask >> den sidste du skrev var genial til formålet !!! -og virker fint

Sidste ting... Hvordan var det lige med
sekunder, millisekunder  ((o; ??  -i samme funktion... der skal stå

3,456

-og hvordan reducerer jeg så decimalantallet ??

Avatar billede baitianlong Nybegynder
21. januar 2002 - 01:37 #14
se preloaderen her...

(sekunderne skal så stå nedenunder load-bar\'en)

http://www.legende.dk/space
Avatar billede paask Nybegynder
21. januar 2002 - 01:38 #15
ved at skrive - (time + getTimer())/1000; - får du antallet i sekunder.milisekunder. Ved at bruge Math.floor((time + getTimer())/1000); så runder vi hele tiden tallet ned til nærmeste heltal, og resultatet bliver derfor i et helt antal  sekunder :0)
Avatar billede baitianlong Nybegynder
21. januar 2002 - 01:42 #16
OK. Det virker, men det er lidt irriterende at den ikke har 3 decimaler på hele tiden, kan man sætte formatet til x,xxx , eller noget ??

Svar og få dine points paask
Avatar billede paask Nybegynder
21. januar 2002 - 01:54 #17
Hæng på, skriver igen om snart ;0)
Avatar billede baitianlong Nybegynder
21. januar 2002 - 01:57 #18
Jeg synes nu også de sekunder går lidt hurtigt, men det er vel ikke din skyld !!, når jeg tester movie i flash - show streaming, tæller sekunderne faktisk omkring dobbelt hastighed.
-Det er sært
Avatar billede paask Nybegynder
21. januar 2002 - 02:01 #19
Det har du da ret i! Faktisk noget der ligner præcist dobbelt hastighed... det har jeg aldrig set før! Hvis du stadig er der geo, så må du meget gerne hjælpe :0)
Avatar billede baitianlong Nybegynder
21. januar 2002 - 02:06 #20
man kan reducere din kode:

time = getTimer();
var sek = Math.floor((time + getTimer())/1000);

til...


var sek = Math.floor((getTimer())/1000);

Men det er en smart kode, den getTimer() er en smart funktion, man kunne bruge den til mange ting.
Avatar billede paask Nybegynder
21. januar 2002 - 02:07 #21
Jep, den med time havde overlevet fra movieclip versionen ;0)

getTimer er helt sikkert smart. Jeg forstår dog bare ikke hvorfor den løber løbsk her til aften!
Avatar billede paask Nybegynder
21. januar 2002 - 02:12 #22
Ah doh!!!

Hvis du har fjernet time variablen så passer tiden selvfølgeligt igen. Der er behov for den til movieclipversionen da den kun bliver benyttet én gang, men med frame løkker bliver time defineret i 1. frame igen og igen... derfor har tiden selvfølgeligt været præcist double-speed! Hehe forb* hvor man dog kan dumme sig ;0)

Jeg ser lige på det med 3. decimal der ikke bliver vist når det har værdien 0.
Avatar billede baitianlong Nybegynder
21. januar 2002 - 02:14 #23
Den tæller faktisk rigtigt med \"min\" udgave af koden !!! (Jeg er dygtig)

Jeg kan se du også er løsningen på mit andet spørgsmål om rollover animationen... ((o;
Avatar billede paask Nybegynder
21. januar 2002 - 02:19 #24
Hehe jep, og har den nok nu :0)
Avatar billede paask Nybegynder
21. januar 2002 - 03:45 #25
Oki, så burde den være grejet, jeg var lidt rundt om forskellige måder at trække data ud af strings hvilket ikke lige virkede... Det endte med jeg fandt en Flash 4 syntax (ikke dot-relateret) som funger. Derfor sætter du dette i din 1. frame, den der definerer preloaderen og variablen sek:

_root.sek = getTimer()/1000;

if (length(sek) == 4 && sek < 10){
    _root.sek = _root.sek+\"0\";
    } else if (length(sek) == 5 && sek > 10 && sek < 100){
    _root.sek = _root.sek+\"0\";
    } else if (length(sek) == 6 && sek > 100 && sek < 1000){
    _root.sek = _root.sek+\"0\";
}

Den virker op til 1000 sekunder (næsten 17 minutter) hvilket burde være rigeligt ;0)
Avatar billede paask Nybegynder
21. januar 2002 - 03:54 #26
Du kan skrive hele din forklarende tekst som en del af en streng, hvor sekunderne bliver vist indeni, dvs. teksten følger/forskyder sig efter tiden der er gået så sammenhængen passer. Eksempeltvist sådan her:

sek = getTimer()/1000;

if (length(sek) == 4 && sek < 10){
    sek = sek+\"0\";
    } else if (length(sek) == 5 && sek > 10 && sek < 100){
    sek = sek+\"0\";
    } else if (length(sek) == 6 && sek > 100 && sek < 1000){
    sek = sek+\"0\";
}

_root.tidDerErGaaet = \"Det har nu taget dig \"+ sek + \" sekunder at hente mit fine site :0)\"

Hvor dit dynamiske tekstfelt hedder \"tidDerErGaaet\". Du kan også nøjes med

_root.tidDerErGaaet = sek +\" sekunder er gået\"

På denne måde sikrer du dig at tekst og tal er på linie, passer med mellemrum etc.

Well, det var bare et ekstra feature :0)
Avatar billede baitianlong Nybegynder
21. januar 2002 - 10:31 #27
Hej igen.

Den er næsten fin nu, men når den rammer en ren 1.decimal (eks: 12,5) sætter den ikke nuller på. det lader til at dit script kun virker når den har mindst 2 decimaler i forvejen.
-kan det passe ?

-Men det er fandme tæt på (o;
Avatar billede baitianlong Nybegynder
21. januar 2002 - 11:28 #28
Alt er i orden og i brug... -men

-som nævnt ovenfor duer det ikke, når der kun er 1 decimal.

-som nævnt i det andet spørgsmål, kan jeg ikke tweene de nye knap_clip

Jeg har ellers fået ufatteligt meget ud af din store hjælp, men der mangler lige finishen (o;
Avatar billede paask Nybegynder
21. januar 2002 - 18:24 #29
Hej igen legende.

Jeg har først lige set dine reply\'s nu. Her drejer det sig blot om at indsætte en ekstra if else sætning. Jeg havde ikke lige overvejet at dette selvfølgeligt kunne blive aktuelt, men nu har jeg indsat 2 ekstra if else sætninger. Det medfører at hvis der kun er én decimal bliver den efterfulgt af to nuller, og hvis (meget usandsynligt) der slet ingen decimaler er vil der blive indsat 3 nuller alligevel. Sådan her:

sek = getTimer()/1000;

if (length(sek) == 2 && sek < 10){
    sek = sek+\"000\";
    } else if (length(sek) == 3 && sek < 10){
    sek = sek+\"00\";
    } else if (length(sek) == 4 && sek < 10){
    sek = sek+\"0\";
    } else if (length(sek) == 5 && sek > 10 && sek < 100){
    sek = sek+\"0\";
    } else if (length(sek) == 6 && sek > 100 && sek < 1000){
    sek = sek+\"0\";
}

_root.tidDerErGaaet = \"Det har nu taget dig \"+ sek + \" sekunder at hente mit fine site :0)\"

Så burde denne virke, jeg ser lige på dit andet spørgsmål ;0)
Avatar billede paask Nybegynder
21. januar 2002 - 18:28 #30
Jeg har lige set dit site, husk at bruge embed fonts på dit dynamiske tekst-felt tidDerErGaaet. Så slipper du for den hakkede font, istedet er den antialiased.
Avatar billede paask Nybegynder
21. januar 2002 - 18:33 #31
Satte lige en ekstra thingie på...

sek = getTimer()/1000;

if (length(sek) == 2 && sek < 10){
    sek = sek+\"000\";
    } else if (length(sek) == 3 && sek < 10){
    sek = sek+\"00\";
    } else if (length(sek) == 4 && sek < 10){
    sek = sek+\"0\";
    } else if (length(sek) == 4 && sek > 10 && sek < 100){
    sek = sek+\"00\";
    } else if (length(sek) == 5 && sek > 10 && sek < 100){
    sek = sek+\"0\";
    else if (length(sek) == 6 && sek > 100 && sek < 1000){
    sek = sek+\"0\";
}

_root.tidDerErGaaet = \"Det har nu taget dig \"+ sek + \" sekunder at hente mit fine site :0)\"
Avatar billede paask Nybegynder
21. januar 2002 - 18:36 #32
Der mangler lige en enkelt tuborg klamme ved sidste } else if ---
Avatar billede paask Nybegynder
21. januar 2002 - 20:26 #33
Hey great... så langt så godt.

Vi skal nok også finde ud af noget med dine loadede movies og deres frames. Du er nok nødt til, på en eller anden måde, at have en level eller lignende til at holde variabel-værdier.
Avatar billede baitianlong Nybegynder
27. januar 2002 - 13:54 #34
Hej Paask.

Håber du læser dette. Dit script er ikke helt godt (beklager). Den fjerner kommaet(punktummet), og når den rammer et rent sekund er der stadig ikke 3 nuller på (se selv efter )!!!! Øv Bøv - skrammel

mvh legende.dk
Avatar billede paask Nybegynder
02. februar 2002 - 22:32 #35
Hey legende.

Jeg har været lidt væk fra min robot og har først fået set på det nu. Jeg havde lavet en dum fejl i scriptet, men nu er det rettet så de tre nuller med punkum kommer på heltal. Desuden har jeg indsat nogle break statements der optimerer sciptet.

break; afkorter betingelsen før scriptet er færdig gennemløbet. På den måde undgås at køre en proces der ikke er behov for længere da betingelsen er opfyldt. I stedet afbryder vi den - det er jo meget nice.

Det ser sådan ud:

sek = getTimer()/1000;

if (length(sek) == 2){
    sek = sek+".000";
    break;
    } else if (length(sek) == 3 && sek < 10){
    sek = sek+"00";
    break;
    } else if (length(sek) == 4 && sek < 10){
    sek = sek+"0";
    break;
    } else if (length(sek) == 4 && sek > 10 && sek < 100){
    sek = sek+"00";
    break; 
    } else if (length(sek) == 5 && sek > 10 && sek < 100){
    sek = sek+"0";
    break;
    }else if (length(sek) == 6 && sek > 100 && sek < 1000){
    sek = sek+"0";
    break;
}


_root.tidDerErGaaet = "Det har nu taget dig "+ sek + " sekunder at hente mit fine site :0)"

Så burde det vel også være der ;0)

God arbejdslyst videre med sitet.
Avatar billede baitianlong Nybegynder
02. februar 2002 - 23:04 #36
Jeg fandt ud af at det var fordi jeg kun havde embedded tallene (og dermed ikke punktum'et) så var det der ikke... Men når man embedder [...] er alt ok. (Dog ikke decimalerne. -Men det er de nu !!)
Jeg har i øvrigt fået meget hjælp fra dine kolleger Lingoman og Barklund (De er også ret seje !) Prøv at se den her:

http://www.legende.dk/realdeal

--tak for hjælpen. Håber du kan hjælpe mig en anden gang.
Avatar billede paask Nybegynder
02. februar 2002 - 23:06 #37
Der er sandeligt lavet lidt om, nice ;0)
Avatar billede baitianlong Nybegynder
02. februar 2002 - 23:15 #38
Ham Barklund skrev den heftige kode til den der skydefunktion. Jeg vil lave et lille spil i det hvide vindue...
Nu kan jeg skyde kugler, og feks få noget til at køre rundt, som man så skal ramme... Men jeg har lidt problemer med at få den til at forstå, at man rammer !!!

Jeg har prøvet med if (_root.brik._x == _root.bullet._x) || (_root.brik._y == _root.bullet._y) {
gotoandPlay ("scene 2" , 1)
}

-Men det virker ikke !!! (P.S. brik er det element der flyver rundt, og bullet er "projektilet" med det vilde script !!!!
Avatar billede baitianlong Nybegynder
02. februar 2002 - 23:18 #39
Jeg skal nok oprette et nyt spørgsmål !!! Håber du ser det på et tidspunkt.
Avatar billede paask Nybegynder
15. februar 2002 - 18:30 #40
Hey legende, tja på et tidspunkt blev det, bare en del dage senere...

Det ser dog ud som om du er ved at have styr på det, og du har da sandeligt, hvad skal man kalde det, forbedret dit arbejde meget og blevet betydeligt dygtigere!? Thumbs up til dig ;0)

Men ét hit og en score der siger jeg stinker... hmpfh hehe :0)

Nice arbejde med sitet.
Avatar billede paask Nybegynder
15. februar 2002 - 18:31 #41
You are visitor nr.
Avatar billede paask Nybegynder
15. februar 2002 - 18:32 #42
hov, kom til trykke på enter. Well, nr. 35798... hehe :0)
Avatar billede baitianlong Nybegynder
15. februar 2002 - 19:40 #43
Det er ham lingoman, der har lært mig lidt om random() som jeg hat lavet til en "tæller", så jeg har en heftig aktivitet på min side. Reklamepengene vælter ind !!!
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