28. oktober 2001 - 11:01Der er
8 kommentarer og 1 løsning
GetDate problemer
Jeg har sat følgende på en knap
on (rollOver) { Tekst = \"Dagens påfund\"; } on (rollOut) { Tekst = \"\"; } on (release) { // Funktion der finder ud af hvilken dag det er. myDate = new Date(); Dag = (mydate.getDay()); if (Dag eq 1) { Dag = \"Mandag\"; } if (Dag eq 2) { Dag = \"Tirsdag\"; } if (Dag eq 3) { Dag = \"Onsdag\"; } if (Dag eq 4) { Dag = \"Torsdag\"; } if (Dag eq 5) { Dag = \"Fredag\"; } if (Dag eq 6) { Dag = \"Lørdag\"; } if (Dag eq 7) { Dag = \"Søndag\"; } // Loader dagens .swf if (Dag eq \"Mandag\") { getURL (\"java script:openNewWindow(\'Mandag.html\',\'Hmm\',\\r\\n\'height=500,width=550,toolbar=no,scrollbars=no\')\"); } if (Dag eq \"Tirsdag\") { getURL (\"java script:openNewWindow(\'Tirsdag.html\',\'Hmm\',\\r\\n\'height=400,width=550,toolbar=no,scrollbars=no\')\"); } if (Dag eq \"Onsdag\") { getURL (\"java script:openNewWindow(\'Onsdag.html\',\'Hmm\',\\r\\n\'height=300,width=225,toolbar=no,scrollbars=no\')\"); } if (Dag eq \"Torsdag\") { getURL (\"java script:openNewWindow(\'Torsdag.html\',\'Hmm\',\\r\\n\'height=400,width=550,toolbar=no,scrollbars=no\')\"); } if (Dag eq \"Fredag\") { getURL (\"java script:openNewWindow(\'Fredag.html\',\'Hmm\',\\r\\n\'height=200,width=500,toolbar=no,scrollbars=no\')\"); } if (Dag eq \"Lørdag\") { getURL (\"java script:openNewWindow(\'Lordag.html\',\'Hmm\',\\r\\n\'height=300,width=450,toolbar=no,scrollbars=no\')\"); } if (Dag eq \"Søndag\") { getURL (\"java script:openNewWindow(\'Sondag.html\',\'Hmm\',\\r\\n\'height=240,width=240,toolbar=no,scrollbars=no\')\"); } }
Meningen var at jeg ville bruge \"getdate\" funktion og derudfra kunne loade 7 forskellige flash filer. Det virkede fint i går (lørdag) men her i dag (søndag). Er der noget jeg har overset?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Slettet bruger
28. oktober 2001 - 11:54#1
Søndag == 0 nb. ungå at bruge specieltegn i din AS.
eq er fra flash 4 og det virker vist stadig, men == er den \"nye\" måde at skrive det på i flash 5 og planen fra macromedia er udskifte alt det \"gamle\" kodesprog så du kan ligeså godt vænne dig til det...
Når du skal sammenligne noget i Flash 5, så bruges operatoren == . Operatoren eq bruges kun, når du har at gøre med tekst.
I dit tilfælde ville jeg helt klart undgå at bruge alle de if-sætninger! For det første har du lavet dem sådan, at Flash skal gå igennem dem alle sammen. Dette er jo ikke nødvendigt, da du f.eks. ikke både kan have en lørdag og søndag på samme tid. Hvis du stadig vil beholde dine if-sætninger, så skal du altså lave dem om til else if.
Imidlertid ville jeg helt klart foretrække at lave et array, og så bare slå op i det array. Vedhæft følgende kode til dit movie clip:
Tak for løsningen gotcha. Men tror det eller ej, jeg fortrækker pt det anden løsning, da jeg lige er begyndt på at lege med Actionscript og derfor fortrækker ting jeg nemt kan genkende. Men på et senere tidspunkt vil jeg klart undersøge din metode og nok også ende med at bruge. Du er sku\' for avanceret for mig (igen).
Din \"else if\" er dog blevet modtaget med kyshånd. Men når du siger at den skal tjekke alle mine sætninger igennem i mine gamle metode, er det så noget at der kan mærkes? Vil det gå væsentligt langsommere? Jeg føler helt at jeg misbruger din viden ved hele tiden at bruge andres metoder som er dårliger. Håber ikke du er træt af det, og selvfølgelig får du mine 60 point for dit svar. Endnu engang tak.
Det gør skam ikke noget, hvis du ikke vil bruge et array (det er dog langt nemmere og en rigtig god måde at opbevare information, så jeg vil helt klart anbefale, at du begynder at rode med dem) :9
I din første metode tager Flash først og undersøger din første if-sætning, og de andre skal som sagt være else if, da du kun oplever ét tilfælde. Jeg har ikke gidet at lave nogle tests, men det er helt klart meget hurtigere at anvende min metode. I dit tilfælde har du en forholdsvis begrænset mængde kode, men hvis du f.eks. tager 100 kopier med din metode, så vil det da køre en del langsommere end hvis du havde anvendt min metode.
Du kan evt. prøve følgende:
on (release) { start = getTimer(); myDate = new Date(); Dag = (mydate.getDay()); if (Dag eq 1) { Dag = \"Mandag\"; } if (Dag eq 2) { Dag = \"Tirsdag\"; } if (Dag eq 3) { Dag = \"Onsdag\"; } if (Dag eq 4) { Dag = \"Torsdag\"; } if (Dag eq 5) { Dag = \"Fredag\"; } if (Dag eq 6) { Dag = \"Lørdag\"; } if (Dag eq 7) { Dag = \"Søndag\"; } slut = getTimer(); trace((slut-start)/1000); }
Med min ser det sådan ud (du skal selvfølgelig stadig vedhæfte ovenstående array til dit movie clip):
on (release) {
start = getTimer(); myDate = new Date(); dateValue = myDate.getDay(); Dag = dates[dateValue]; slut = getTimer(); trace((slut-start)/1000);
}
Som sagt er det en forholdsvis begrænset mængde kode, men den er alligevel væsentlig hurtigere at skrive, og oven i købet får jeg en forbedring i hastighed på 25 % med min metode :)
Mvh Morten
Synes godt om
Ny brugerNybegynder
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.