Jeg ønsker at når man klikker på btn_1 traces "1". Ved btn_2 traces "2"...osv. Men det virker ikke, da - efter hvad jeg har forstået - loopet løbes igennem først, og først derefter, når jeg klikker på en af knapperne, vil der altid traces "10".
Hvordan kringler man denne? Det er vist noget med addEventListener(). Men jeg forstår ikke hvordan jeg fletter det sammen med ovenstående.
Gør dig nu dine egne erfaringer med dette her! For jeg har lavet denne fejl cirka en million gange. Problemet er, at når du trykker på knappen, spørger den efter referencen i, som på dette her tidspunkt er nået ti, fordi loopet er sluttet for længst inden du kan nå at trykke på knappen. Det lidt klamme hack, som hf2ke har vist, er også altid den løsning, jeg har gjort brug af. Eller du kan lave noget endnu mere klamt:
Men sådan noget gjorde man kun dengang man var helt ny i Flash ;)
I virkeligheden giver dit spørgsmål rigtigt god mening, for som jeg ser det, skal den enten huske på i's værdi og trace det rigtige - som dit eksempel burde gøre. Eller trace undefined eller give en fejl, hvis den kører strict efter princippet med, at i er en reference. For faktisk er i en lokal variabel, og den bliver slettet lige så snart, loopet er færdigt. Så at den tracer i's slutværdi er lidt hul-i-hovedet-agtigt. Men gør som hf2ke, og så har du en løsning, der aldrig svigter.
Synes godt om
Slettet bruger
12. juli 2008 - 00:40#4
Må jeg spørge, hvad du skal bruge det til? At kende instansens nummer?
Sådan en lille block kan da bruges til meget. Han lægger bare en event listener på flere movieclips i et loop - skidesmart :) Det kunne også være, han senere hen omskrev til følgende:
--- for(var i = 1;i < 11; i++) { this["btn_"+i].counterValue = i; this["btn_"+i].onRollOver = BRO; } functino BRO():void { switch(this.counterValue) { case 1: trace("Måske er denne knap Home?"); break;
case 2: trace("Og så kan denne knap være Contacts."); break;
// Øvrige cases } ---
Og så har han en brugbar, generel funktion, der kan klare alle knappers kald hver for sig.
Jeg er ved at lave et lille spil til min 3-årige søn, der er helt vild med at genkende bogstaver. Et projekt jeg fandt på, for at lære mere flash og as2. I en frame vil jeg placere alle alfabetets bogstaver oven på grafik der ligner sæbebobler (dette er mine knapper). Og ved rollOver skal bogstavlyden afspilles fra en mp3, og ved klik kommer man ind i en bane hvor man skal finde bogstaver magen til det man valgte. Derfor ville jeg gerne have alle knappernes events defineret dynamisk. Men der var jo ingen grund til at skrive alt den kode her, da det jo er nemmere at svare på spørgsmålet, når alt unødvendigt er barberet fra. Jeg synes det kan være svært at gennemskue andres koder, når der er en milliard af deres egne variabelnavne i. Men jeg er jo heller ikke hverken prof eller uddannet eller noget. I øvrigt er jeg en pige.
Synes godt om
Slettet bruger
12. juli 2008 - 22:08#10
En pige?! På Eksperten?!?!?! Ej, godt det ikke kun er mænd :) Det er snart svært at trække været for bare testosteron!
Anyway. Lyder som et godt og lærerigt projekt - for både dig og din søn. Egentlig kan du lave det mere logisk med klasser, men lad bare det vente til du er kommet ordentligt igang med Flash. Når du engang er færdig med projektet (det tager altid liiige lidt længere end forventet!), kunne det da være, du skulle publisere det på nettet? Det kan vel have interresse for flere børn/forældre.
Og lige en sidste kommentar: Du skriver, at du gerne vil lære mere AS2. Hvis du alligevel søger erfaring og ny viden inden for AS, kan du med fordel kikke på AS3 (der er mere effektivt og logisk end AS2) - men det er nok, uanset hvad, smartest at gøre dette projekt færdigt, før du kaster dig ud i AS3.
Ah! Jeg tænkte nok, det var en pige, vi havde med at gøre. Babysus85 er vel sat sammen af "baby", "sus" og "85". "baby" er et nickname, "sus" kan enten være et pigenavn eller en forkortelse eller et kælenavn for diverse pigenavne (sussie, susanne etc. (hvor knap så mange drenge bliver kaldt "sus")), og "85" er garanteret et fødselsårstal. Jeg lyder som en hel analytiker nu. Måske jeg skulle skifte branche.
Anyway (godt ord). Det er fedt, når folk tager Flash med hjem, hvis du spørger mig. Jeg har brugt det meget til skoleprojekter etc., og det ved jeg, hf2ke også har, for sådan cirka alle sammen var sammen med ham. Flash er genialt.
Desuden er jeg helt enig i, at du burde se på AS3 snarest muligt, så du kan nå at vænne dig til det "moderne" fra starten af ;) Og jeg forstår dig nu godt, at du ikke vil have for lange koder, andre har skrevet. Det kan være svært at fortolke andres idéer, navne, rækkefølger og måder at gøre tingene på. Vi plejer dog her på eksperten at være ret flinke med at gøre koderne så nemme at tolke som overhovedet muligt. Hvorimod jeg i mine egne projekter bruger klamme forkortelser og navne alle steder. I mit nuværende projekt har jeg variablen ppatswtw, og så kan du jo prøve at gætte, hvad det står for. Faktisk har jeg glemt det lige på stående fod, men det er ligemeget, når jeg ved, hvad den gør. Og nu løb jeg fra emnet igen. Så jeg retter lige til:
Er der noget, du mangler hjælp til? Så spørger du bare. Og du kan bare spørge i samme tråd, hvis du vil det. Og jeg kan da lige slutte af med at fortælle, at addEventListener er AS3, så at blandet det ind i billedet er spild af hjerneceller og bekymringer :)
Synes godt om
Slettet bruger
13. juli 2008 - 02:36#12
Fucking Christ... Og hvis du ikke ved, hvad du skal få tiden til at gå med, kan du bare spørge maqhem - som du kan se, skriver han ofte en hel masse ^^ Men jeg vil nu tie stille herfra. Farveller.
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.