Slik bruker du et dokument klasse i Flash

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)
. 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

Klikk på < em> Fil > New ... Action File
. Lagre dette som Main.as
i samme mappe som FLA.

Denne filen er der vi kommer til å sette inn koden som driver FLA seg selv, men hvordan vil Flash vite hvordan å finne det



Trinn 3: Link FLA til AS File

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
i boksen merket "Class". For noen grunn, Adobe droppet "dokument" bit



Trinn 4:. (Valgfritt) Ominnred mappestruktur

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



Trinn 5:. Skriv din Document Class

Åpne Main.as fil og lime følgende kode:
pakke {import flash.display.MovieClip; public class Hoved strekker MovieClip {offentlig funksjon main () {}}}

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
også grupper. kode sammen, men på en annen måte. Klasser inneholde funksjoner og variabler; pakkene inneholder klasser og import uttalelser

Merk:. må du gi din klasse med samme navn som AS filen:. Hoved

Hva om offentlig
? Vel, det betyr bare at andre klasser i koden din vil være i stand til å se denne klassen.

Denne klassen Hoved
kommer til å drive vår FLA. Som standard er vår FLA et filmklipp (det har en tidslinje).

Vi vil Hoved
å 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

(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 ()
funksjon. Så hvis du ' re ikke sikker på om du skal utvide MovieClip eller Sprite, gå for MovieClip -. det er tryggere)

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
koden til å fungere, må vi fortelle Flash hvor du finner MovieClip klasse. Det er hva import
linje gjør

Hvis ingen av disse spørsmålene hjelper, kan du legge inn en kommentar



Trinn 7:.. Prøve noe litt mer komplisert

Prøv å erstatte din Main.as kode med dette:
pakke {import flash.display.MovieClip; public class Hoved strekker MovieClip {offentlig funksjon main () {var hilsenen: String = "Hei"; trace (hilsen); }}}

Enkelt, ikke sant? Vi har nettopp opprettet en ny String variabel inne i konstruktøren funksjon. Nå la oss legge til en ny funksjon:
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"; }}}

Det er et par ting å merke seg her

For det første går den nye funksjonen inne i klassen, og etter
konstruktøren -. Av konvensjonen, er den første konstruktøren funksjon i klassen.

For det andre er den nye funksjonen offentlig
; 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

For det tredje, avslutter den nye funksjonen definisjon med .: Void
. Det betyr bare at det ikke returnerer en verdi. Konstruktør funksjoner trenger ikke : void
fordi de ikke kan
returnere en verdi

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
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"; }}}

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
konstruktøren.

Test filmen nå, og du bør endelig få en hyggelig hilsen på fransk. Hvor nyttig!



innpakning opp

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 :)