Create en fargerik Spinning Wheel i Flash med AS3
to
Del
8
Del
Denne Cyber Monday Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.
I denne opplæringen vil du lære hvordan du oppretter en rokk ved hjelp av Flash og AS3, med et grensesnitt som er egnet for både Mouse og touch-baserte enheter.
Endelig resultat Forhåndsvisning
La oss ta en titt på det endelige resultatet vi skal jobbe mot:
Klikk og dra musen vertikalt for å snurre hjulet; jo lenger den linjen du drar, jo raskere vil hjulet spinne! Når den stopper, vil den fargede linjen nederst vise fargen hjulet landet på
Trinn 1:. Kort oversikt
Ved hjelp av pre-laget grafiske elementer vi vil skape en fargerikt grensesnitt som vil bli drevet av flere Actionscript 3 klasser
Brukeren vil kunne snurre hjulet ved hjelp av en dra gest representert med en linje på skjermen.; en høyere linje vil gjøre en raskere spin
Trinn 2:. Flash Dokumentinnstillinger
Åpne Flash og skape et 500x300px dokument. Sett bildefrekvens til 24fps
Trinn 3:. Interface
En fargerik fint utseende grensesnitt vil bli vist, som består av flere former, movieclips og mer.
Den enkle figurer ble opprettet ved hjelp av Flash Pro tegneverktøy, og siden de er enkle å duplisere Jeg vil ikke forklare skaperverket sitt. Kontroller at hjulet rotasjonspunktet ligger i sentrum
Du kan alltid se på FLA i kilde laste ned filer
Trinn 4:.. Forekomstnavn
Bildet over viser forekomstnavn Vi vil bruke en annen tween motor enn standard en inkludert i Flash; dette vil gjøre fargen overgangen i colorMC symbol mye enklere Du kan laste ned TweenMax Legg til klassenavnet, Main, til Class Opprett en ny (Cmd + N) Actionscript 3.0 Class og lagre den som Main.as Lag din grunnleggende klassestrukturen for å begynne å skrive koden din Dette er de klassene vi trenger å importere for vår klasse til å fungere. Importen Direktivet gjør eksternt definert klasser og pakker tilgjengelig i koden Dette er de variablene vi vil bruke; lese kommentarene i koden for å vite mer om dem: Konstruktøren er en funksjon som kjøres når et objekt er opprettet fra en klasse, og er den første som skal utføres når du foreta en instans av et objekt. Siden dette er vår dokumentet klasse, vil den kjøre så snart SWF laster Først vi legger til de ulike padle movieclips til vektoren, og legge til lytterne - vi vil skrive lytterne () -funksjonen neste Denne funksjonen vil legge til eller fjerne lytterne i henhold til parameter. Muse Lyttere er satt til å trekke linjen som vil kontrollere hjulet Den neste funksjonen starter å lage en linje basert på gjeldende musen posisjon, og plasserer den på scenen. Det er utløst når musen klikkes Mens musen beveges, fortsetter linjen i den retningen Den neste kode kjøres når museknappen slippes, etterbehandling linjen. Tegningen lyttere er fjernet for å unngå å trekke flere linjer, og hastigheten blir beregnet i henhold til høyden av linjen. Til slutt blir en enterframe arrangement som heter å faktisk roter hjulet Dette er funksjonen som vil spinne hjulet og oppdage hvilken verdi den lander på: Her har vi oppdage den nåværende verdien av hjulet basert på den siste åre det rørte Twitter /* Detect Verdi * /for (var i: int = 0; i < 10; i ++). {if (indicator.hArea.hitTestObject (padleåre [i])) { lastPaddle = paddles [i] .name; }} Hjulet hastighet reduseres hver ramme til slutt stoppe spinnende Twitter /* Redusere hastighet * /hastighet - = 0,1; Alle verdier tilbakestilles når hjulet stopper. En funksjon som skal kjøre en handling i henhold til den endelige verdien kalles Twitter /* Fjern lytteren og nullhastighet når hjulet stopper * /if (hastighet < = 0). {Stage.removeEventListener (Event.ENTER_FRAME, spin); speed = 0; setBarColor (lastPaddle); lyttere ('add'); }} Denne funksjonen vil kjøre en egendefinert handling i henhold til den siste verdien av hjulet. I dette tilfellet endrer det farge på bunnlinjen, men du kan gjøre det gjøre noe annet Endre kode for å utføre dine egne handlinger! Jeg håper du likte denne opplæringen, takk for lesing!
av de ulike movieclips. Vær spesielt oppmerksom på de wheel.p movieclips; disse er de små svarte linjer som deler fargene i hjulet, og er inne
hjulet MovieClip. De er oppkalt p1 til p10, går med klokken
Trinn 5:. TweenMax
fra Greensock nettstedet
Trinn 6:.. Set Hoved Class
feltet i Publiser
delen av Egenskaper
panel til knytte FLA med hoveddokumentet klasse
Trinn 7:. Opprett en ny Action Class
i klassen din mappe
Trinn 8:.. Class Struktur
pakke {import flash.display.Sprite; public class Hoved strekker Sprite {offentlig funksjon main (): void {//konstruktør kode}}}
Trinn 9: Må Classes
import flash.display.Sprite;. Import flash.display.Shape, import flash.events.MouseEvent, import flash.events.Event; import com.greensock. TweenMax;
Trinn 10: Variabler
private Var hastighet: Antall = 0; //den aktuelle hastigheten på wheelprivate Var padleåre. Vector < Sprite > = New Vector. ≪ Sprite > (); //en vektor som holder p1, p2 etc MCs i stageprivate Var linje: Shape; //linjen trukket som gest for å flytte wheelprivate Var lastPaddle: String; //vil oppdage den nåværende verdien av hjulet
Trinn 11: Constructor
offentlig endelige funksjonen main (). Void {//code...}
Step 12: Låser Vector
offentlig endelige funksjonen main (). void {paddles.push (wheel.p1 , wheel.p2, wheel.p3, wheel.p4, wheel.p5, wheel.p6, wheel.p7, wheel.p8, wheel.p9, wheel.p10); lyttere ('legge');}
Trinn 13: Lyttere
private endelige funksjons lyttere (action: String): void {if (handling == 'legge') {stage.addEventListener (MouseEvent.MOUSE_DOWN, startDraw);. stage.addEventListener (MouseEvent.MOUSE_UP, spinWheel); } Else {stage.removeEventListener (MouseEvent.MOUSE_DOWN, startDraw); stage.removeEventListener (MouseEvent.MOUSE_UP, spinWheel); }}
Trinn 14: Movement Linje
privat endelige funksjon startDraw (e: MouseEvent): void {linje = new Shape ();. addChild (linje); line.graphics.moveTo (mouseX, mousey); line.graphics.lineStyle (8, 0x000000, 0,3); //du kan endre linjefargen og stil her stage.addEventListener (MouseEvent.MOUSE_MOVE, Drawline);}
Trinn 15: Tegn linje
privat endelige funksjon Drawline (e: MouseEvent):. void {line.graphics.lineTo (mouseX, mousey);}
Trinn 16: snurre hjulet
private endelige funksjon spinWheel (e: MouseEvent):. Void {stage.removeEventListener (MouseEvent.MOUSE_MOVE, Drawline); lyttere ('rm'); speed = line.height * 0,1; removeChild (linje); linje = null; stage.addEventListener (Event.ENTER_FRAME, spin);}
Trinn 17: Roter hjulet
privat endelige funksjon spin (e: Hendelses): void {/* Roter Wheel * /wheel.rotationZ + = hastighet;
Trinn 18: Oppdage Verdi
Trinn 19:. Reduser Speed
< h2> Trinn 20: Tilbake Wheel
Trinn 21: Sett Bar Color
funksjon setBarColor. (Action: String): void {switch (handling) {case 'p1': TweenMax.to (colorMC, 0.5, {colorTransform: {tint: 0xF15D5D, tintAmount: 1}}); gå i stykker; case 'p2': TweenMax.to (colorMC, 0.5, {colorTransform: {tint: 0xC06CA8, tintAmount: 1}}); gå i stykker; case 'p3': TweenMax.to (colorMC, 0.5, {colorTransform: {tint: 0x644D9B, tintAmount: 1}}); gå i stykker; case 'p4': TweenMax.to (colorMC, 0.5, {colorTransform: {tint: 0x5E98C6, tintAmount: 1}}); gå i stykker; case 'p5': TweenMax.to (colorMC, 0.5, {colorTransform: {tint: 0x4789C2, tintAmount: 1}}); gå i stykker; case 'p6': TweenMax.to (colorMC, 0.5, {colorTransform: {tint: 0x55C4CB, tintAmount: 1}}); gå i stykker; case 'P7': TweenMax.to (colorMC, 0.5, {colorTransform: {tint: 0x57BC80, tintAmount: 1}}); gå i stykker; case 'p8': TweenMax.to (colorMC, 0.5, {colorTransform: {tint: 0x90CC6C, tintAmount: 1}}); gå i stykker; case 'P9': TweenMax.to (colorMC, 0.5, {colorTransform: {tint: 0xEBE666, tintAmount: 1}}); gå i stykker; case 'p10': TweenMax.to (colorMC, 0.5, {colorTransform: {tint: 0xF29C69, tintAmount: 1}}); gå i stykker; }}
Konklusjon