Adding multippel arv til AS3 med egenskaper og Realaxy Editor
Del
Del
3
Del
Dette Cyber mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.
I dette innlegget vil du lære om et språk utvidelse kalt Traits Prøven Prosjektet ble opprettet med Actionscript 3.0 med trekk språket forlengelse hjelp Realaxy Actionscript Editor (RASE). Hvis du ønsker å gjøre det på samme måte, kan RASE lastes ned her (hvis du er ny på RASE følger du nybegynner guide her) Men noen ganger virker det uutholdelig. Det hender at på grunn av denne manglende funksjon vi gjøre vår kode for sofistikerte eller sannsynligvis rotete. For eksempel har vi en klasse Creature, som allerede strekker Sprite. Vi ønsker å lære det hvordan man snakker. " En skikkelig OOP " pålegger oss å lage en komposisjon. Så vi trenger å: La oss forestille vi har multippel arv. Så gjør vi en høyttaler klasse, arve vår Creature klasse fra høyttaleren. Det er alt, folkens Så, tenk deg vår Creature bør være i stand til å gjøre mye ting. Å gå, til å bevege armer og ben, å spise, å smile, å gråte. Kanskje også til å fly. Du vet aldri hva slags krav kan bli en del av spec. Som et resultat, får vi hundrevis og tusenvis av linjer med en " skikkelig Vi, dyktige blinklysene, forstår at situasjonen beskrevet er rent kunstig. Hvem ville lage en pakke med grensesnitt for alle aspekter av atferd? Selv om de ville være aktuelt ikke bare for Creature. Faktisk ville det virkelige koden ser annerledes ut, ikke så pen og learnedly, men nærmere den virkelige verden -. Det vil si, enklere Så det viser seg at de beste intensjoner ECMAScript-tallet (og senere Action tallet) designere til å lage en moderne og korrekt OOP språk imøtekomme dårlig for vårt daglige arbeid. Nok klaging! Vi har et verktøy for å fikse det. RASE. Realaxy Actionscript Editor. Denne løsningen er Egenskaper La oss gå videre til handling. Først oppretter et nytt prosjekt med testTraits modul holdige hovedklassen Creature Angi prosjektet detaljer som vist her, og klikk på Neste. Opprett en ny klasse heter Creature, i pakken com.example: Denne koden skal opprettes: Importer en trekk språk ved å trykke Ctrl + L plakater (eller Command + L Lag en Speak grensesnitt med et enkelt "snakke" metoden. Den nedre delen av vinduet har to kategorier, "Interface" og "Trait". Velg "Trait" -kategorien (farget med grått) og klikk på den tomme redaktører feltet. Det vises en dialogboks, og tilbyr oss å lage en ny egenskap. Etter "OK" en standard implementering er skapt av redaktør. Legg merke til hvordan dette er nå egenskap Snakk heller enn grensesnittet Speak: Legg en kropp til "snakke" metoden: "Hello" bare spore til konsollen. I Creature klassen legge til en "Speak" grensesnitt til "redskap". Redaktøren lagt en " i " til høyre for grensesnittet navn. Det betyr at grensesnittet har en standard implementering -.. Den har trekk atferd RASE gjenkjenner slik oppførsel og ikke fremheve noen feil når metoder er lagt til klassen Anmeldelser Det er det! Vår Creature kan snakke nå! Legg en samtale av metode speak () til en klasse konstruktør for å bevise det. Rediger run-konfigurasjon Du vil se denne dialogen. Trykk på "+" knappen for å legge til en ny konfigurasjon, og velg Action Angi detaljene som vist her. (Dette Slik kan vi være sikker på at vi får se sporingen.) Kjør kompilert SWF. A " Hei " Meldingen vises i konsollen Her er hva vi får. Som et resultat, har vi atferd som er virkelig liker multippel arv, men står på "riktig og korrekt" OOP anbefalinger. La oss se hvordan det fungerer, ved å se på koden vi faktisk genererer Klikk på "Bygg- > Generer (foreldet) - > Generer Tekst fra dagens modell".. Den nylig genererte koden av Creature klasse vises i Output-vinduet. Koden demonstrert over implementerer en klassisk komposisjon. Den egenskap språk forlengelse skjuler redundante enheter og organiserer relasjoner mellom kode gjenstander. Faktisk, driver vi en "ren" OOP kode. Nå ser vi en ny rask og enkel måte å lære våre Creature hvordan du gjør alt. Det viktigste er oppførselen: vi bruke de samme grunnregler til en annen klasser La oss gjøre det på 5 minutter Legg til noen nye trekk -.. ett for hvert lem - akkurat som vi gjorde før: The Creature klassen får nå en rekke nye ferdigheter, men koden forblir lett lesbar og rent. Uten Traits språket utvidelsen ville det være helt annerledes: Det er på tide å si farvel. Jeg venter på dine spørsmål, forslag og kommentarer. Husk, hvis RASE er nytt for deg, kan du lese «Beginners Guide". Anmeldelser
, en funksjon av en ny Beta av RASE, en smart og moderne IDE for Adobe Flash basert på JetBrains MPS. Trekk vil tillate deg å bruke multippel arv i prosjektene, slik at en klasse kan effektivt forlenge to andre klasser.
Hvorfor bruke multippel arv?
< p> Actionscript er et moderne objektorientert språk. I øyeblikket, selve OOP defenition og tolke anta at multippel arv er en ondskapsfull praksis. Således, som i seg selv ikke tillater multippel arv, og bare ved hjelp av grensesnitt er et alternativ. Det er vel og bra, ingen grunn til å krangle.
Opprett en iSpeaker grensesnitt
Legg til en tale () metode for å iSpeaker
Implementere dette grensesnittet med en høyttaler klasse...
The Creature klasse skal være arvet fra iSpeaker.
Deretter legger en delegat til Creature klassen. Snakk metoden ville omdirigere kall speak () til representanten.
" OOP kode, som er så overflødig og ordrik, at det å forstå dens egentlige hensikten ville være vanskelig selv å forfatteren.
, en AS3 språk forlengelse.
Trinn 1
Trinn 2
Trinn 3
Trinn 4
Trinn 5
).
Trinn 6
Trinn 7
Trinn 8
Trinn 9
Trinn 10
Trinn 11
Trinn 12
Step 13
Trinn 14
Trinn 15
Trinn 16
Trinn 17
Code of grensesnitt og implementering er bundet opp med navigasjonsverktøy og bokmerker i editor.
Kode er nå godt organisert. Hver implementeringen har et navn: grensesnittnavnet + "Impl"
Boost av brukervennlighet.. I en klasse som bruker denne atferden, vi bare legge vår grensesnitt til implementert listen.
Trinn 18
Trinn 19
Trinn 20