Create en Rain Effect i Flash Bruke Actionscript 3.0
4
Del
Del
Del
Denne Cyber mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.
I denne opplæringen vil vi skape en dynamisk regn effekt ved hjelp av Actionscript 3.0. Effekten kan tilpasses på mange måter bare ved å endre noen få linjer med kode. La oss komme i gang
Endelig resultat Forhåndsvisning
La oss ta en titt på den endelige effekten vi skal jobbe mot:
Trinn 1 - Kort oversikt
Vi vil trekke en enkel regn dråpe, deretter bruke våre Action ferdigheter vi vil kopiere, flytte og plassere MovieClip å få en fin regnfull effekt
Trinn 2. - FLA Document
Opprett en ny Actionscript 3 dokument (Fil > New ...). Sett Stage størrelse på dine ønskede dimensjoner, har jeg brukt 600 x 300 px
Trinn 3 -. Velg et bilde
Legg til eller trekke et bilde som skal brukes som bakgrunn, brukte jeg en endrede bildet av JinThai, lisensiert under Creative Commons
Trinn 4 -. Layers
Gi nytt navn det første laget til "Bakgrunn" og deretter opprette en ny og gi den navnet "Code" (vi vil bruke dette man å plassere vår Action på). Du kan låse "Code" lag for å unngå plassering av uønskede tegninger der
Trinn 5 -. Opprette Drop
Lag en grafisk å bruke som regn dråpe. Satt sin farge til hvit og bruke en lineær gradient for alfa, mine er 40 til 15. konvertere den til en MovieClip og gi den navnet "Drop", må du huske å sjekke "Export for Action" boksen.
Trinn 6 - Importere Obligatoriske Classes
La oss starte noen kode i en egen Actionscript-fil:
pakke Classes {/* Import nødvendig klasser * /import flash.display.MovieClip, importere flash.events.Event; < p> Her importerer vi klassene som vi skal bruke. Husk at ordet ved siden av "pakken" er navnet på mappen der vår Class ligger
Trinn 7 -. Utvide Class
//Vi trenger å utvide klassen slik at vi kan bruke addChild () -metoden. public class Rain strekker MovieClip {
Utvide MovieClip klasse vil tillate klassen vår å arve alle metoder, egenskaper og funksjoner som den MovieClip har. I dette tilfellet bruker vi den til å få tilgang til addChild () -metoden
Trinn 8 -. Variablene
Her vil vi bruke en eksklusiv Flash Player 10 Class "Vector". . Enkelt sagt, fungerer Vector klasse som en Array, men er betydelig raskere
privat Var offset: int = 50; //Dette er offset-området i piksler at effekten vil ta. Uten dette, vil hjørnene av effekten området være regn freeprivate Var dropsNumber: int; //Antall regndråper; sin verdi er satt i parametersprivate Var dropsVector. Vector < MovieClip > = New Vector. ≪ MovieClip > (); //Vector som vil lagre hvert regn dråpe
Trinn 9 - Hovedfunksjon
offentlig funksjon init (dråper: int, fallSpeed: int, Windspeed: int, hArea: int, vArea: int, dir: String): void {dropsNumber = drops;
Hovedfunksjonen, med noen parametere gjør effekten lett å tilpasse til dine behov. Du kan endre antall dråper, hastigheten ved hvilken dråpene faller, hastigheten ved hvilken dråpene vil bevege seg horisontalt, størrelsen av effekten området og retningen av regn (venstre eller høyre).
Vi setter dropsNumber verdi her
Trinn 10 -.? Venstre eller Høyre
Som standard er offset Var satt til å arbeide med venstre side, så vi trenger å sjekke hvor regn vil gå og endre motregnes dersom retningen er riktig
if (dir == "riktig") {offset * = 1;}
Trinn 11 - Bruke Drop MovieClip
For å. viser ulike forekomster av Drop MovieClip vi må lage en ny Drop Object inne i en "For" statement:
for (var i: int = 0; i < drops; i ++) {var dråpe: Drop = new Drop();drop.fallSpeed=fallSpeed;drop.windSpeed=windSpeed;drop.dir=dir;drop.hArea=hArea;drop.vArea=vArea;
We bruke "faller" variable for å få brukerdefinert antall dråper og sett variablene inne i MovieClip for senere bruk
Trinn 12 -. Posisjon
Definer et start tilfeldig posisjon for Drops.
drop.x = Math.random () * (hArea + offset); drop.y = Math.random () * vArea;
Trinn 13 - Scale
drop.scaleX = Math.round (( (Math.random () * 0,8) + 0,3) * 10) /10; drop.scaleY = drop.scaleX;.
Dette setter omfanget av Drops mellom 0,3 og den opprinnelige størrelsen
Trinn 14 - Legge til Drops til Stage
dropsVector.push (drop); addChild (drop);} //End of ForinTheDirection (); } //Slutt på init funksjon
Denne koden legger Drop MovieClip til Vector og deretter til scenen. Det kaller også "retning" -funksjonen
Trinn 15 - Direction
privat funksjon inTheDirection (): void {for (var i: int = 0; i < dropsNumber; i ++) {switch (dropsVector. [i] .dir) {case "venstre": dropsVector [i] .addEventListener (Event.ENTER_FRAME, moveLeft); gå i stykker; case "riktig": dropsVector [i] .scaleX * = - 1; //Vår Drop ble opprettet skal til venstre, så vi snu den slik at den ser ut som det kommer til høyre dropsVector [i] .addEventListener (Event.ENTER_FRAME, moveRight); gå i stykker; standard: trace ("Feil"); }}}
I denne funksjonen vi bruker en annen "For" for å få tilgang til de movieclips inne i Vector. Så vi sjekke retningen parameter og legge en List til tilsvarende funksjon. Dette vil alle ta seg av bevegelsen og stillingen.
Trinn 16 - flytte funksjoner
privat funksjon moveLeft (e: Hendelses): void {e.target.x- = e.target.windSpeed; e.target.y + = Math.random () * e.target.fallSpeed; if (e.target.y > e.target.vArea + e.target.height) {e.target.x = Math.random () * (e.target.hArea + (offset * 2)); e.target.y = - e.target.height; }} Privat funksjon moveRight (e: Hendelses): void {e.target.x + = e.target.windSpeed; e.target.y + = Math.random () * e.target.fallSpeed; if (e.target.y > e.target.vArea + e.target.height) {e.target.x = Math.random () * (e.target.hArea - offset * 2) + offset * 2; e.target.y = - e.target.height; }}}}
Dette flytter Drops basert på parametrene i hovedfunksjon. Det tilbakestiller deretter posisjonen når dråpene beveger seg utenfor effekten området
Trinn 17 -. Bruke Class
Det er den klassen er ferdig, for å gjøre bruk av det vi går tilbake til Flash IDE, åpen Handlinger panelet og skrive:
import Classes.Rain; Var regn: Regn = new Rain (); rain.init (200, 50, 5, 600, 300, "venstre"); addChild (regn);
Dette vil skape en ny Rain Object, og kaller den viktigste funksjonen for å starte effekt. Til slutt legger vi effekten til scenen.
Konklusjon
Husk at du kan spille med parametrene for å få ulike effekter, og at du også kan endre dråper ved å tegne hva du vil. Fortsette å prøve forskjellige kombinasjoner for å få den eksakte effekten du ønsker.
Jeg håper du likte å lese tut så mye som jeg gjorde å skrive den. Takk for lesing!