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 
 
 

