AS3 101: Variabler - Basix
to
Del
en
Del
Dette Cyber mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av
Dette innlegget er en del av en serie som heter AS3 101.AS3 101: Funksjoner - Basix
To ganger i måneden, vi besøker noen av våre lesere favoritt innlegg fra hele historien Activetuts +.. Denne klassiske opplæringen ble første gang publisert i juni 2009, og var den første i det som har blitt en utrolig serie.
Dette er begynnelsen på en serie som vil gå gjennom noen av de grunnleggende begreper i programmering, som de gjelder til Actionscript 3.0. Å sparke ting av, vi skal snakke om variabler.
AS3 101
Dette tut er rettet holdent på de som har lite til ingen scripting erfaring, men hvis du har brukt variabler uten egentlig å komme inn i detaljene av datatyping og støping, kan det være lurt å følge med.
Takk også til Davide Di Stefano for å tillate oss å utviske sitt ikon. Anmeldelser
Innledning
I løpet av de neste trinnene, vil vi bygge et enkelt eksempel, som er den viktigste funksjonen knapperaden som fungerer som en gruppe. Gjeldende valgte knappen har en annerledes utseende, det kan ikke klikkes på igjen og utseendet er restaurert til sin opprinnelige tilstand når en annen klikkes. Vi vil bruke en variabel for å holde oversikt over hva som skjer
Trinn 1:.? Hva er Variabler
Første ting først: la oss definere hva en variabel er. Hvis du husker high school matematikk, kan du huske at variabler er "stand-in" verdier. Det vil si, de er symboler (vanligvis enkeltbokstaver, som for eksempel "x", eller "E" og "m" i E = mc2) som representerer en numerisk verdi. Det er forutsatt at verdien kan endres avhengig av andre faktorer i en ligning.
I programmering er en variabel akkurat det samme, med to hoved unntak. Først i programmering, kan en variabel holde mer enn bare et tall. Det kan holde en sekvens av teksttegn (kalt en "streng"), kan det betegne sant eller usant (kalt en "boolsk"), eller den kan holde noe mye mer kompleks, som en dato, et XML-dokument, eller en film klipp.
Den andre største forskjellen med matematikk er at programmerings variabler vanligvis har beskrivende navn, i stedet for bare en enkelt bokstav navn. Det finnes unntak, selvfølgelig: "x", "y" og "z" blir ofte brukt til å referere til posisjoner og "i" brukes ofte betegne den aktuelle iterasjonen gjennom en loop. Et navn som er relevant for verdien blir lagret er ikke bare vanlig, men også nyttig i å holde programmet leselig. For eksempel, hvis du ønsket å holde styr på hvor mange partikler du har på skjermen, kan du navnet ditt variabelen "particleCount" eller "totalParticles."
Som matematiske variabler, programmatiske variabler har potensial for å bli endret i løpet av I løpet av programmet. For eksempel, hvis du startet med 10 partikler, vil variabelen "particleCount" har den numeriske verdien av 10. Men hvis du genererte 10 flere partikler, vil variabelen da har den numeriske verdien av 20. Dette er en av de viktigste funksjonene variabler. Du har et navn som refererer til en verdi, men verdien er ikke nødvendigvis kommer til å være den samme hver gang du åpner den. Dette er en mystisk, men kraftig aspekt av variabler. Du vil lære å sette pris på dette, selv om det er forvirrende i begynnelsen.
For å oppsummere denne definisjonen, er en variabel i utgangspunktet en beholder som du sette et navn og hvor du putter en verdi. Du kan alltid få verdien som finnes inne ved å referere til variabel ved navn, og du kan sette en ny verdi inne i containeren på noe punkt. Hver gang du åpner variabel ved navn, får du nåværende Nok teori, la oss faktisk komme til å jobbe med å lage variabler. Opprett en ny Flash-dokument (Actionscript 3.0). Klikk på det første bildet av det første laget (det bør være den eneste ramme) Åpne opp Handlinger panelet ved å velge Vindu >.; . Handlinger (eller trykke F9 på Windows eller Opt-F9 på Mac) I Handlinger panelet, skriver du inn følgende: På dette punktet, er det varible erklært Dette er et minimum må du deklarere en variabel. Ordet "var" er kjent som en søkeord Det er noen regler du bør følge når navngi dine variabler. Noen håndheves av Actionscript kompilator, andre er bare konvensjoner som, når fulgt, hjelpe deg og andre gjør bedre følelse av koden din. Først Action språket tilsier at du kun kan bruke visse tegn i variabel navn. Dette er noen alfanumeriske tegn (bokstaver og tall), understrek og dollartegn. Enhver annen karakter (bindestrek, plassen, den perioden, etc) er ikke tillatt. Vanligvis er dette fordi mange andre tegn har spesiell betydning i Actionscript. Action pålegger også regelen om at variabelen navn ikke må begynne med et tall. Tall er imidlertid tillatt etter det første tegnet. Det bærer også nevne at Actionscript er case-sensitive, noe som betyr at du må matche brevet sak når det refereres til en variabel. I words, er variabelen "melding" ikke det samme som den variable "melding". Dette kan virke restriktive som første, men det er faktisk gode grunner til å håndheve dette. Plassen tillater ikke en diskurs på følgende grunner, men. For nå, bare lære å skrive dine variabler navnene akkurat det samme hver gang du ønsker å bruke dem. Action samfunnet har kommet til en generell enighet om hvordan å navngi dine variabler, selv om følgende regler er flere konvensjoner og retningslinjer, i stedet for å bli håndhevet av Actionscript. For det første bør du bruke beskrivende navn. Dette er en slags selv dokumentere teknikk. Hvis du navnet ditt variable "budskap," det er sannsynlig at du allerede har en idé om hva den tiltenkte rollen som inneholdt verdien er. Hvis det var bare "m", så det er langt mindre klart. Det er fristende å bruke forkortede variabelnavn og mens du er i utgangspunktet å skrive manuset kan det bety mindre skrive og fortsatt fornuftig. Den neste personen å se på koden din, eller du selv seks måneder senere, vil trolig bli forvirret. En annen konvensjon er bruken av kamel tilfelle. Det er flere retningslinjer for valg variabelnavn, men de begynner å få mer esoterisk herfra. For nå må du huske på ovennevnte regler, og du vil være av en god start. Wikipedia har noen artikler om emnet, blant annet en kort del i tidligere koblet artikkel om variabler generelt, denne artikkelen på navnekonvensjoner, og en kort artikkel om en effekt som kalles skygging. Noen andre interessante leser er denne listen over dårlige variabelnavn, denne uttalelsen av de to verste variabler navn noensinne, og denne anekdoten beskriver hvorfor variabelnavn rolle Nå som vår variabel er deklarert, kan vi sette en verdi i den. På neste linje i Handlinger panelet, skriver du inn følgende kode: Vi starter ved å bruke variabelen ved sitt navn. Så vi følger det med et likhetstegn, som er kjent som oppdrag operatør Oppdraget. Operatøren krever at det ikke være noe på hver side av den. Det fungerer ved å ta verdien på høyre side ("Hello", i dette tilfellet) og la ballen inn i variabelen på venstre side (melding). Hvis vi skulle kjøre denne koden, vi ville ha en variabel som heter "budskap", som inneholder en verdi på "Hello". Det er ikke å gjøre noe annet, så det er ingenting å se i øyeblikket, men det kan være en god idé å teste filmen likevel å sørge for at du ikke får noen feil, i tilfelle du skrev noe i galt. Vi har nå en navngitt beholder som har en verdi på innsiden av det. La oss få tilgang til denne verdien. I dette tilfellet, vil vi ganske enkelt spore verdien til utdatapanelet På en ny linje med kode, skriver følgende: Hele skriptet vil se ut. dette: Som du kanskje vet, sporingsfunksjonen tar uansett hva du går til det i mellom parentes og setter den i utdatapanelet. Når du teste filmen, bør du se utdatapanelet åpnes automatisk og verdien av meldingen variable ("Hello", uten anførselstegn) skrives ut til det. Hver gang du bruker variabel ved navn og er ikke å sette den på venstre side av oppdraget operatør (likhetstegnet), spør du Actionscript for å få verdien inneholdt av variabel og bruke denne verdien. Dette kalles evaluere Nå la oss bevise at vi kan sette forskjellige verdier i samme container. På neste linje, la oss sette verdien av meldingen variable igjen: Og så på linjen etter det, spore den ut igjen: Hele skriptet vil se slik ut: Kjør filmen, og du skal nå ha to spor: Legg merke til at linjene 3 og 5 er identiske - de begge spor meldingen, men de produserer forskjellige resultater! Hver gang vi ber om meldingen skal spores, nåværende Det er ikke rocket science, men dette er en av de mer forvirrende aspekter ved bruk av variabler. Hvis du kan mestre dette, vil du være godt på vei til å bli en Action guru Action støtter noe som heter sterk typing Sterk typing betyr ganske enkelt at når vi erklære en variabel, kan vi også erklære hva slags En datatype er, i et nøtteskall, som er en verdi av type data. Det vil si, verdier kan være en streng, et tall, en boolsk, en dato, et XML-dokument, et filmklipp og mange flere innebygde typer - selv typene du oppretter. Vårt budskap variabelen er implisitt av type String (merk kapital "S"), så la oss gjøre den type eksplisitt. Vi vil gjøre vårt kode sterkt-skrev, etter decalring en datatype. Tilbake på første linje med kode, der vi erklærer meldingen variabel, endre det til å lyde: kolon angir at det handler om å følge er en datatype og da vil du se datatype selv. Alle innebygde datatyper vil starte med en stor bokstav, og det er en felles konvensjon for egendefinerte datatyper også. Vi vil ikke være å få til å skrive egendefinerte datatyper, men. Hvis du kjører koden på dette punktet, bør du se at det fungerer akkurat det samme. For en lengre diskusjon om datatyper og sterk typing, head over til Wikipedia Vi kan imidlertid illustrere hvor sterk typing fungerer ved forsettlig forårsaker en feil. La oss legge til litt mer kode, tilordne variabelen til enda en verdi. Denne gangen, men vi vil prøve å sette et tall på det i stedet for en String. På slutten, skriver du følgende: Test filmen, og du bør se følgende feilmelding: Språket er litt arkaisk, men det betyr bare at vi har et tall (eller en "int") verdi, og vi prøvde å sette det inn i en variabel som tidligere ble erklært å bare inneholde Strings. La oss kaste en annen feil. Slett de to linjer med kode du bare lagt til og erstatte dem med følgende linje: Deretter kjøre filmen. Du bør få følgende feilmelding: isNaN () -funksjonen forventer et tall som skal sendes inn til det gjennom parentes (NaN betyr Not a Number Merk at hvis du fjerner String datatype fra variabel og deretter kjøre disse to forsøkene, du vant ' t får en feilmelding. Koden faktisk vil utføre og i dette tilfellet mangel på datatyping er ikke en så stor avtale. I større prosjekter kan ha denne type forsikring forebygge feil og bugs som bringer ned hele filmen Det burde være nok av en introduksjon; la oss se en spesifikk bruk av variabler i aksjon. Vi skal nå begynne å lage knappen gruppe eksempel vist i starten av denne opplæringen. Opprett en ny Actionscript 3 Flash-fil og lage noen kunst å tjene som en knapp. . Slå den inn i et filmklipp Dra symbolet på scenen fire ganger, slik at det er fire forekomster av-knappen. Selv om det ikke er nødvendig for funksjonen av filmen, kan det være lurt å arrangere dem i en rad på toppen av scenen. Gi hver en forekomst navn ved å klikke på hver enkelt individuelt og skrive inn navnet i forekomstnavnet feltet i Properties panelet. Jeg har kalt mine knapper "Button1", "knappen2", "Button3", og "button4." For enkelhets skyld i å følge sammen med koden, være konsekvent og bruke navnene mine Under knapperaden, skape et dynamisk tekstfelt, gi den en forekomst navn (jeg brukte "output") og gå videre og gjøre den så stor som får plass på scenen. Hensikten med dette tekstfeltet vil være å logge navnene på knappene som de er klikket. Vi trenger ikke altfor mye horisontal plass, men bør ha så mye vertikal plass som mulig Lag et nytt lag å holde koden din, låse den, og klikk deretter i rammen for det laget. Åpne Handlinger panelet. Skriv inn følgende kode for å koble opp en handling for å svare på museklikk for hver knapp: For nå, den faktiske tiltak som svar på et klikk er trivielt , men det er nok for oss til å teste. Hvis du har gjort alt riktig så langt, bør du være i stand til å teste filmen og klikk på hver av de fire knappene. Hver gang du klikker, vil du se ordet "klikk" dukke opp i utdatapanelet Du lurer kanskje på hvordan vi vil oppnå vårt mål med bare en enkelt funksjon. Hvordan vil at en funksjon reagere hensiktsmessig for hver av de fire forskjellige knapper? Uten å komme inn i for mye detalj i tilfelle paradigmet av Actionscript 3, hver funksjon som fungerer som en hendelse lytteren vil motta en hendelse objekt som parameter. Det finnes flere typer hendelsesobjekter, fra vanlig hendelse objekter til MouseEvents til KeyboardEvents til ProgressEvents og flere, men hvert arrangement objektet vil ha noen felles kjennetegn. En av de mest nyttige av disse er "target" egenskap. Hver hendelse objekt definerer et mål eiendom som peker til det som faktisk forårsaket hendelsen. Vi kan fortelle hvilken knapp ble klikket ved å gå til målet for MouseEvent i funksjonen. For å se dette i aksjon, endre innholdet funksjons til: Hele manuset ser slik ut: Kjør filmen og klikk på knappene igjen. Du bør se passende navn dukker opp i utdatapanelet. Dette fungerer fordi hendelsen objektet selv er holdt i variabelen som heter "hendelse". At objektet har en egenskap (en egenskap er i utgangspunktet en variabel, bortsett fra at den tilhører en gjenstand) kalt "target", og ved hjelp av dot syntaks vi kan få tilgang til målet variabel fra arrangementet variabel. Målet er filmklippet som faktisk ble klikket og forårsaket hendelsen. Ved å gå inn navnet eiendom som filmklipp, kan vi få en indikasjon på hvilken knapp ble klikket for å skrive ut til utdatapanelet La oss nå faktisk gjøre noe når en knapp klikkes. Vi setter knappens navn i tekstfeltet. Legg til følgende til buttonClick funksjon (erstatte, hvis du liker, sporingen setning) Den første linjen setter navnet på klikket knappen i tekstfeltet. Den appendText () metoden vil ta dagens tekst og legge til det. Vi vil sette en ny linje tegn ("\\ n") på slutten av den ekstra teksten å sørge for at neste bit av teksten lagt vil være på en ny linje. Den andre linjen sørger for at siste tekstlinjen er alltid synlig. I et nøtteskall, setter denne linjen på rulle beløpet (som tekstlinje er på toppen av det synlige området) til det maksimale beløp basert på hvor mange linjer det er Husk at målet vårt er å gjøre knappen klikket den valgte knappen, så vi ønsker å visuelt representere det. For enkelt å lage en visuell endring til knappen, vil vi bare satt alfa til noe litt gjennomsiktig Skift spor uttalelse med følgende:. alfa tilhører et filmklipp justerer gjennomsiktighet og varierer fra 0 til 1, der 1 er helt ugjennomsiktig. Derfor er 0,7 noe som er 70% dekkende, eller 30% gjennomsiktig. Kjør film og klikk på en knapp. Du skal se det endre seg. Selvfølgelig, vi har fortsatt mye å implementere, så når en knapp henter den valgte utseende, holder det på den måten Du ll merke til at hvis du klikker på en knapp, kan du fortsette å klikke på den, noe som gjenspeiles ved navn dukke opp hver gang du klikker. Vi vil ha noe som en gruppe på tab knapper, hvor en en knapp som er valgt ikke kan klikkes. Vi kan enkelt gjøre dette ved å sette mouseEnabled eiendom knappen nylig klikket (fortsatt event.target) til false Hele manuset på dette punktet bør se slik ut : Så langt vi er en god start, men mens knappen reagerer riktig når vi klikker det første gang Vi har problemer etter det. Knappen er slags fast i den valgte staten og er aldri restaurert til sin normale tilstand når en annen knapp klikkes. Nå kan vi presentere den variabelen som vil løse alle våre problemer. Vi trenger en variabel som skal inneholde filmklipp som er valgt for øyeblikket knappen. Ved å lagre det i en variabel, kan de opplysninger om hvilken knapp er valgt vedvare fra klikk til å klikke. Vi kaller det "currentButton", og vi skal gi det en datatype av MovieClip. På toppen av manuset, skriver denne linjen: Nå, hver gang vi klikker på en knapp ønsker vi å spore at knappen i currentButton variabel, slik at til enhver tid vet vi hvilken knapp er den nåværende. Dette gjøres med følgende modifikasjon til buttonClick funksjon: Legg merke til den "som MovieClip" i foregående kode. Vi vil glatte over alle de blodige detaljer her, men dette er en nødvendighet på grunn av sterk typing. Vår currentButton variabel er deklarert som en MovieClip. Imidlertid er målet eiendom hendelsesobjektet erklært som et objekt, som er en veldig generisk datatype. Målet er definert som et objekt slik at det kan være generisk; mange ting kan opprette hendelser og så målet vil ikke nødvendigvis alltid være en MovieClip. Problemet er at de to datatyper ikke helt samsvarer; vi er lovende at bare movieclips vil gå inn i currentButton variabel, men vi prøver å sette et objekt i. Det beste vi kan gjøre er å anta at arrangementet har som mål, faktisk, en MovieClip og så utfører vi en kastet Merk at casting er ikke uten sine problemer. Det største problemet kommer i form av en cast som ikke kan bli innfridd. For eksempel, hvis vi skulle prøve å kaste vår event.target som en XML-objekt, vel, så det ville ikke fungere i det hele tatt, ville det? Movieclips og XML-objekter har svært lite til felles. Når gipsen er forsøkt, ville vi få en tom verdi tilbake, som etterlater oss med en brukket program. Hvis vi er heldige får vi en runtime error sier at karakterene ikke kan fullføres; hvis vi er uheldig får vi tom verdi og er venstre lurer på hvorfor ting ikke fungerte som planlagt. Casting bør unngås hvis det er ikke nødvendig, men i noen tilfeller (som denne) er det ganske mye det eneste alternativet. Hvis vi ikke kastet målet, vil vi få en kompilator feil. Gå videre og prøve det hvis du har lyst til å se hva som skjer Selv om det ikke er strengt nødvendig, vi kan også bruke vår nye currentButton variabel i stedet av event.target i kroppen av funksjonen. Det er ikke nødvendig fordi mens vi er i funksjon, har vi tilgang til event.target og vår kode vil fungere helt fint uten å gjøre følgende endring. Men det er to overbevisende grunner til å komme i vane med å bruke skrevet (og støpt, om nødvendig) variabler der det er mulig. Den første grunnen er den viktigste årsaken. Som nevnt i det siste trinnet om casting, er event.target ikke skrevet som en MovieClip. Likevel vet vi at det er, så vi kastet den som sådan. Tenk tilbake til trinn 9, der vi bevisst har skrevet en variabel som en ting og prøvde å bruke den som en annen, som forårsaket feil. Nå, hvis vi går og fortelle den variable currentButton å sette sitt alfa til 0,7, er currentButton en MovieClip og MovieClip har alfa eiendom og alt er bra. Hvis vi tilfeldigvis prøvde å sette aplah Den andre grunnen har å gjøre med ytelsen. I dette tilfellet, er vi ikke kommer til å se store gevinster fra å bruke en maskinskrevet variabel i stedet for event.target. I Actionscript 3, er det raskere å bruke en verdi ut av en enkelt skrevet variabel som det er ute av en utypet eiendom (som event.target er). I kritiske applikasjoner kan dette gi deg et ekstra par prosessorsykluser. Så, i dette trinnet er vi rett og slett endre ut forekomster av event.target med currentButton, etter at det har blitt satt. koden skal se omtrent slik ut: Nå som vi har en variabel deklarert og holde en verdi, kan vi bruke den til å gjenopprette visuelle inntrykket av den tidligere valgte knappen. Det vil si, hvis du klikker på Button1 og det endrer utseende, deretter klikker du på knappen2, ønsker vi Button1 å se normal igjen. Den neste bit av koden må skje før vi setter currentButton variabel. Ellers vil vi påvirke den nåværende Dette vil gjenopprette forrige knappens utseende, men vi vil ikke være i stand til å klikke på den. Vi tidligere har deaktivert den ved å sette sin mouseEnabled eiendom til false, så vi kan aktivere det ved å sette den tilbake til sann. Plassere denne koden umiddelbart etter siste bit av koden vi skrev: Koden skal se slik ut: Hvis du prøvd å kjøre filmen etter det siste trinnet skal du har kjørt inn i en runtime error involverer en "null objekt." Dette er Action måte å si at en variabel ikke har en verdi før du har prøvd å gjøre noe med det. Det som skjedde var at når filmen starter, er currentButton variabel deklarert, men det har ikke en verdi ennå. Det blir bare en verdi når du klikker på en knapp. Vel, når du klikker på en knapp, er buttonClick funksjons går og det første den gjør er å prøve å sette alpha av alt som er i currentButton. Dessverre er ingenting i currentButton og så "null objekt" feil blir kastet. På dette punktet, stopper script kjøring og slik at vi ender opp med aldri å komme til et sted hvor vi faktisk kan stille currentButton. Dette er lett unngås, though. Vi må bare sjekke at currentButton ikke lik null før du fortsetter. Bytt ut de to første linjene med: Uten å komme inn i for mye detalj, setter dette opp en tilstand som bare kjører uttalelse etter parente hvis Her er den fullstendige koden i tekstform for referanse: På dette punktet, du har opprettet en variabel. Den har et navn og en datatype. Den lagrer flere forskjellige verdier over tid, slik at det på enkelte punkter i tid kan du spore den nåværende verdien og gjøre noe med det. Du har lært om casting og hvorfor variabler er byggesteinen i alle programmer av ulik kompleksitet. Jeg håper du likte denne nybegynner artikkelen, legg gjerne igjen spørsmål og meninger i kommentarfeltet. Vi har mange flere tutorials planlagt for AS3 101 serien, så følg med! Anmeldelser
verdi som finnes der. For videre lesning, kan det være lurt å se hva Wikipedia har å si om variabler
Trinn 2:. Erklærte en variabel
Var melding;
. Dette betyr at beholderen finnes, men foreløpig har ingen tilhørende verdi.
, noe som betyr at det er reservert av Action språk og har en bestemt mening. I dette tilfellet, erklærer det en variabel. Det må bli fulgt av variabelnavnet du vil bruke; hvis du ikke følger Var søkeord med et variabelnavn du får en feilmelding når du prøver å teste filmen
Trinn 3:. Naming Variabler
Dette er en teknikk for å slå to eller flere ord i et enkelt ord. Husk at du ikke kan bruke mellomrom (eller noen andre hvite plass, for den saks skyld) i ditt navn, så hvis du ønsket å bruke uttrykket "total partikler" du må finne en måte å bli kvitt det plass. "totalparticles" virker, men avstanden mellom ord går tapt. Camel saken er en metode for kapitalisering som sier at hele ordet er små bokstaver unntak av den første bokstaven i hvert ord, med unntak av den første bokstaven i det første ordet. Med andre ord, bruk kamel saken til "total partikler" resultater i "totalParticles".
Trinn 4:. Sette en verdi
message = "Hello";
. Etter det, har vi en sitert sekvens av tegn (slutter med semikolon, som er akkurat slik du ende linjer i Actionscript - vil du se mye av å avslutte semikolon i kode)
< p> Skriptet skal se slik ut så langt:
Trinn 5: Få pengene
trace (melding);
variabelen
Trinn 6:. Manipulere Verdi
message = "How are you?";
trace (melding);
verdien av variabelen er evaluert Hotell og brukt. Først det blir satt til "Hello" og som dukker opp i utdatapanelet. Etter det setter vi den til "Hvor er du?" og deretter som dukker opp i utdatapanelet.
Trinn 7:. Forstå Datatyper
. Det er et interessant språk i at det er bare sterkt-skrev hvis du forteller at det skal være slik, og det kan være sterkt-skrev på enkelte punkter og svakt skrevet i andre. Det er noe å si for den enkle bruken av et svakt skrevet språk, men de fleste seriøse programmerere vil være i stand til å snakke for et par timer på fortjeneste av sterk typing. Så hva er det?
av verdi kan bli satt inn i den. Det vil si, hvis vi sier at vårt budskap variable kan bare inneholde en streng (som det skjer for å gjøre det i dag), så hvis vi prøvde å sette et tall eller dato inn i det, vil Action klage i form av en feil. Forårsaker feil kan virke som en hindring, men når du gir datamaskinen for å fange dine feil for deg, du faktisk ende opp med å spare tid. Svakt skrive variablene vil unngå kompilatorfeil, men kan tillate logiske feil (for eksempel, prøver til store bokstaver et tall), i hvilket tilfelle ting kan feile uten forvarsel. Lenger rom for kompilatorfeil gjennom sterkt-skrive koden din faktisk sparer du tid i det lange løp.
Var melding: String;
Trinn 8:. forårsaker en feil
melding = 42; trace (melding);
1067: Implisitt tvang av en verdi av typen int til en urelatert typen String.
isNaN (melding);
, som er en spesiell verdi betyr en antall som faktisk ikke har noen verdi. Denne funksjonen tester for dette tilfellet). Siden vi kjører i en String, får vi i utgangspunktet det motsatte feil av hva vi hadde før.
Trinn 9:. Lag en knapp
Trinn 10: Lag fire forekomster
Trinn 11:. Lag et tekstfelt
Trinn 12:. Hook Up Klikk Lyttere
button1.addEventListener (MouseEvent.CLICK, buttonClick); button2.addEventListener (MouseEvent.CLICK, buttonClick); button3.addEventListener (MouseEvent.CLICK , buttonClick); button4.addEventListener (MouseEvent.CLICK, buttonClick), funksjon buttonClick (event: MouseEvent): void {trace ("klikk");}
Trinn 13:. Forståelse Event.target
trace (event.target.name);
Trinn 14:. Output Button Navn
output.appendText (event.target.name + "\\ n"); output.scrollV = output.maxScrollV;
Trinn 15:. Lag en Valgt State
Event.target.alpha = 0,7;
Trinn 16:. Deaktiver Event.target
event.target.mouseEnabled = false;.
Trinn 17: Variable til Hold den aktuelle knappen
Var currentButton: MovieClip;
Trinn 18: Sett Variabel å Event.target
currentButton = event.target som MovieClip;
på den. Den "som" operatør tar verdien på venstre og behandler det som om det var av datatype som er angitt til høyre. Forutsetningen er rimelig, siden koden er inne i en funksjon som bare skal bli kalt når brukeren klikker på en MovieClip og at MovieClip skaper MouseEvent.
Trinn 19:. Bruk currentButton
eiendom (det skjer oftere enn du tror), ville Flash klage om det og gi oss beskjed og vi vil være i stand til å korrigere våre feil raskt. Bruke event.target (som er en veldig generisk, løst-skrev variabel), kan det ta lengre tid å finne ut at skrivefeil.
Trinn 20: Opphev Old Nåværende Button
knappen, ikke den forrige
knappen
currentButton.alpha = 1;.
currentButton.mouseEnabled = true;
Trinn 21: Se etter null verdi
if (currentButton) {currentButton.alpha = 1; currentButton.mouseEnabled = true;}
setningen i parentes har en verdi. Med andre ord, hvis currentButton har ikke anbefale er satt, så hopp over den delen om å sette sin alfa og plukke opp med neste linje med kode.
Var currentButton: MovieClip; button1.addEventListener (MouseEvent.CLICK, buttonClick); button2.addEventListener (MouseEvent.CLICK, buttonClick); button3.addEventListener (MouseEvent.CLICK, buttonClick); button4.addEventListener (MouseEvent. KLIKK, buttonClick), funksjon buttonClick (event: MouseEvent): void {if (currentButton) {currentButton.alpha = 1; currentButton.mouseEnabled = true; } CurrentButton = event.target som MovieClip; trace (currentButton.name); output.appendText (currentButton.name + "\\ n"); output.scrollV = output.maxScrollV; currentButton.alpha = 0,7; currentButton.mouseEnabled = false;}