How å bruke et dokument klasse i Flash
15
Del
7
Del
Dette Cyber Monday Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.
Vi gjør noen endringer på Activetuts +. Fra nå av vil våre tutorials skal bruke klassebasert kode, i stedet for tidslinje kode, der det er mulig. Denne Quick Tips forklarer hva du trenger å vite
Hvorfor bruke Class filer
Jeg skal innrømme det -.? Noen ganger, koding helt på tidslinje er nyttig. Det er en rask måte å teste ut en effekt, og den enkleste måten å synkronisere handlinger til bestemte rammer av en animasjon.
Men for ethvert prosjekt som stoler mer på kode enn på animasjon, det er alvorlige ulemper. All din Actionscript er fanget inne i FLA fil; du kan ikke dele programmering mellom forskjellige utviklere, må du kopiere og lime inn koden hvis du ønsker å gjenbruke det, og du er tvunget til å bruke Flash Handlinger panelet.
Ved hjelp av klassefilene setter koden gratis. Og det er egentlig ikke vanskeligere enn koding på tidslinjen; det bare innebærer litt mer oppsett. Jeg vil gå gjennom å skape en Flash prosjekt som bruker klasser, deretter bryte ned en klasse fil i detalj.
(En del av årsaken til at vi bytter til klasser er å gjøre det enklere for AS3 utviklere som don 't bruke Flash i seg selv til å følge våre tutorials Hvis du er en av dem, jeg forventer at du er vant til å håndtere klasser allerede, men du kan alltids lese denne Quick Tips som et oppfrisknings -.! bare ignorere de bitene om Flash)
Trinn 1: Lag en FLA
Jeg er sikker på at du allerede vet hvordan du gjør dette. Åpne Flash og klikk Fil > New ... Flash File (Actionscript 3.0) Klikk på < em> Fil > New ... Action File Denne filen er der vi kommer til å sette inn koden som driver FLA seg selv, men hvordan vil Flash vite hvordan å finne det Du kan ha flere titalls AS filer i samme mappe som FLA, så Flash ikke vil å gjette hvilken du vil bruke. Vi må fortelle det Bytt til markeringsverktøyet (Snarvei: V)., Så sørg for at du ikke har noe valgt (trykke Ctrl-Shift-A). Åpne Properties panel ( Vindu > Properties) Hvis du bruker Flash CS3, vil det se slik ut: Enter Hoved <. br> i boksen merket "Dokument class" - det er å matche navnet på Actionscript-fil, minus ".as" filtype .. Hvis du bruker Flash CS4, det vil se ut dette: I dette tilfellet må du angi Hoved Du trenger ikke å holde alle filene dine i samme katalogen. Sjekk ut denne Quick Tips screen hvis du ønsker å vite hvordan du flytter ting rundt Åpne Main.as fil og lime følgende kode: Dette er en grunnleggende tomt dokument klasse. Det er den minste mengden med kode vi kan skrive som faktisk vil kjøre. La meg bryte det ned: Pakken søkeord forteller Flash at all koden mellom sine klammeparentes er en del av en enkelt gruppe Skrive klasse Hoved Merk:. må du gi din klasse med samme navn som AS filen:. Hoved Hva om offentlig Denne klassen Hoved Vi vil Hoved (Noen ganger kan vi ikke trenger å gjøre noe animasjon på scenen hovedtidslinjen.; i dette tilfellet, trenger vi ikke å forlenge MovieClip, og vi kan bare forlenge Sprite stedet. MovieClip selv strekker Sprite, men legger til ekstra funksjoner for animasjon, som nextFrame () MovieClip er i seg selv en klasse Flash ikke automatisk holde styr på hvor all sin klasse filene er lagret; for at vår strekker MovieClip Hvis ingen av disse spørsmålene hjelper, kan du legge inn en kommentar Prøv å erstatte din Main.as kode med dette: Enkelt, ikke sant? Vi har nettopp opprettet en ny String variabel inne i konstruktøren funksjon. Nå la oss legge til en ny funksjon: Det er et par ting å merke seg her For det første går den nye funksjonen inne i klassen, og etter For det andre er den nye funksjonen offentlig For det tredje, avslutter den nye funksjonen definisjon med .: Void Hvis du tester denne filmen, vil du få en feilmelding.: Main.as, Line 15: 1120:. Tilgang av udefinert eiendom hilsen Når du oppretter en variabel inne i en funksjon, kan det ikke nås av andre funksjoner. Hvis du vil at hver funksjon i klassen for å kunne få tilgang til variabelen, må du deklarere den inne i klassen, men utenfor Akkurat som med funksjoner, hvis du deklarerer en variabel utenfor en funksjon, må du starte den med "offentlig" (eller "privat" eller "beskyttet"). I motsetning til funksjoner, bør variablene defineres ovenfor Test filmen nå, og du bør endelig få en hyggelig hilsen på fransk. Hvor nyttig! Så, dette er ikke akkurat et spennende resultat, men forhåpentligvis har du nå føler deg i stand til å følge tutorials som ikke kode på tidslinjen. Jeg virkelig ønsker å sikre at alle forstår hvordan du bruker et dokument klasse, så vær så snill, hvis noe av dette var uklare, legge inn et notat i kommentarfeltet. Når vi har sortert ut forvirring, vil jeg redigere Quick Tips for å gjøre det lettere for neste person å forstå. Thanks :)
. Lagre den hvor du vil. Jeg har kalt meg Example.fla
, men det spiller ingen rolle hvilket navn du velger
Trinn 2:. Lag en Action File
. Lagre dette som Main.as
i samme mappe som FLA.
Trinn 3: Link FLA til AS File
i boksen merket "Class". For noen grunn, Adobe droppet "dokument" bit
Trinn 4:. (Valgfritt) Ominnred mappestruktur
Trinn 5:. Skriv din Document Class
pakke {import flash.display.MovieClip; public class Hoved strekker MovieClip {offentlig funksjon main () {}}}
også grupper. kode sammen, men på en annen måte. Klasser inneholde funksjoner og variabler; pakkene inneholder klasser og import uttalelser
? Vel, det betyr bare at andre klasser i koden din vil være i stand til å se denne klassen.
kommer til å drive vår FLA. Som standard er vår FLA et filmklipp (det har en tidslinje).
å kunne gjøre alt som et filmklipp kan gjøre, pluss mer basert på koden at vi skriver. Med andre ord, vi ønsker å utvide
funksjonaliteten til en vanlig MovieClip
funksjon. Så hvis du ' re ikke sikker på om du skal utvide MovieClip eller Sprite, gå for MovieClip -. det er tryggere)
koden til å fungere, må vi fortelle Flash hvor du finner MovieClip klasse. Det er hva import
linje gjør
Trinn 7:.. Prøve noe litt mer komplisert
pakke {import flash.display.MovieClip; public class Hoved strekker MovieClip {offentlig funksjon main () {var hilsenen: String = "Hei"; trace (hilsen); }}}
pakke {import flash.display.MovieClip; public class Hoved strekker MovieClip {offentlig funksjon main () {var hilsenen: String = "Hei"; changeGreetingToFrench (); trace (hilsen); } Offentlig funksjon changeGreetingToFrench (): void {hilsen = "Bonjour"; }}}
konstruktøren -. Av konvensjonen, er den første konstruktøren funksjon i klassen.
; når koding inne i en klasse (og ikke på tidslinjen) er det lurt å sette "public" (eller "privat" eller "beskyttet", men jeg vil forlate dem for en annen post) ved begynnelsen av linjen som definerer funksjonen . Det er bare en måte å la andre klasser vite hvorvidt de kan få tilgang til det
. Det betyr bare at det ikke returnerer en verdi. Konstruktør funksjoner trenger ikke : void
fordi de ikke kan
returnere en verdi
alle funksjoner:
pakke {import flash.display.MovieClip; public class Hoved strekker MovieClip {public Var hilsen: String = "Hei"; offentlig funksjon main () {changeGreetingToFrench (); trace (hilsen); } Offentlig funksjon changeGreetingToFrench (): void {hilsen = "Bonjour"; }}}
konstruktøren.
innpakning opp