Quick Tips: Hvordan oppdage Mouse Direction Bruke ActionScript

Quick Tips: Hvordan oppdage Mouse Direction Bruke Action
Del
Del
en
Del

Dette Cyber ​​mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.

I denne hurtig Tips vil du lære hvordan du kan få muse nåværende retningen i Flash-program som bruker AS3. Du kan bruke dette til å skape en interessant kontrollmetode for et spill, ved hjelp av en mus som en joystick, for eksempel. For nå vil vi bare vise retning på skjermen




Forhåndsvisning

Her er en rask eksempel for å vise hva vi jobber mot.
< hr>
kort oversikt

Ved hjelp av en MouseEvent.MOUSE_MOVE hendelse vi vil overvåke bevegelse av musepekeren, lagre data i variabler og vise sin nåværende retningen.



Trinn 1:. opprette en ny fil

Åpne Flash og opprette en ny Flash-fil (Actionscript 3)



Trinn 2: Åpne Handlinger Panel

Trykk Option + F9, eller gå til Vindu > Tiltak for å åpne Handlinger Panel



Trinn 3:. Variabler

Enter variablene vi vil bruke; navnene deres er ganske selvforklarende:
Var previousX: Antall = 0; Var previousy: Antall = 0; Var currentX: Antall = 0; Var currenty: Antall = 0; Var xDir: String; Var yDir: String; Var dir: Textfield = new Textfield ();



Trinn 4: Hovedfunksjon

Dette er den viktigste funksjonen:
funksjon getMouseDirection (): void {dir.width = stage.stageWidth; //Størrelse på tekstfeltet addChild (dir); //Legger tekstfeltet til scenen //Legger en mus flytte lytter til scenen og utfører checkDirection funksjonen når en musebevegelse oppstår stage.addEventListener (MouseEvent.MOUSE_MOVE, checkDirection);}



Steg 5: Sjekk retning

Denne koden kaller funksjoner som kontrollerer retningen og viser resultatet i den fasen Textfield
funksjon checkDirection (e: MouseEvent):. void {getHorizontalDirection (); getVerticalDirection (); dir.text = "x:" + xDir + ", y:" + yDir;}



Trinn 6: Få

Sjekk muse retninger
//Horizontalfunction getHorizontalDirection (. ): void {previousX = currentX; //Sjekker siste posisjon currentX = stage.mouseX; //Får nåværende posisjon if (previousX > currentX) //Sammenligner begge posisjoner for å bestemme retningen {xDir = "left"; } Else if (previousX < currentX) {xDir = "right"; } Else {xDir = "ingen"; }} //Verticalfunction getVerticalDirection (): void {previousy = currenty; //Sjekker siste posisjon currenty = stage.mouseY; //Får nåværende posisjon if (previousy > currenty) //Sammenligner begge posisjoner for å bestemme retningen {yDir = "opp"; } Else if (previousy < currenty) {yDir = "ned"; } Else {yDir = "ingen"; }}



Trinn 7: Kjøre Function

For å starte funksjonen Legg til denne linjen til koden. Når getMouseDirection () -funksjonen er kjørt, vil det sette opp MOUSE_MOVE arrangementet lytteren som driver retning indikator
getMouseDirection ();



Trinn 8:. Dokument Class Version
pakke {import flash .display.MovieClip; import flash.text.TextField; import flash.events.MouseEvent; public class MouseMoveDemo strekker MovieClip {public Var previousX: Antall = 0; offentlig Var previousy: Antall = 0; offentlig Var currentX: Antall = 0; offentlig Var currenty: Antall = 0; offentlig Var xDir: String; offentlig Var yDir: String; offentlig Var dir1: Textfield = new Textfield (); offentlig Var dir2: Textfield = new Textfield (); offentlig funksjon MouseMoveDemo () {getMouseDirection (); } Offentlig funksjon getMouseDirection (): void {dir1.width = stage.stageWidth; addChild (dir1); dir2.width = stage.stageWidth; dir2.y = 50; addChild (dir2); stage.addEventListener (MouseEvent.MOUSE_MOVE, checkDirection); } Offentlig funksjon checkDirection (e: MouseEvent): void {getHorizontalDirection (); getVerticalDirection (); dir1.text = "x:" + xDir dir2.text = "y:" + yDir; } Offentlig funksjon getHorizontalDirection (): void {previousX = currentX; currentX = stage.mouseX; if (previousX > currentX) {xDir = "left"; } Else if (previousX < currentX) {xDir = "right"; } Else {xDir = "ingen"; }} Offentlig funksjon getVerticalDirection (): void {previousy = currenty; currenty = stage.mouseY; if (previousy > currenty) {yDir = "opp"; } Else if (previousy < currenty) {yDir = "ned"; } Else {yDir = "ingen"; }}}}

Sats på denne tilnærmingen hvis du foretrekker å bruke et dokument klasse fremfor tidslinje kode. Les denne Quick Tips hvis du ikke er sikker på hva du skal gjøre med det.

Du kan bruke denne klassen å bygge inn en mus blinklys inni ethvert prosjekt. Bare kopiere hele klassen inn i en ny AS fil, lagre den som "MouseMoveDemo.as", så kan du referere til den ved hjelp av følgende tekstutdraget:
Var mouseMoveDemo: MouseMoveDemo = new MouseMoveDemo (); addChild (mouseMoveDemo);
Konklusjon

Dette er en grunnleggende eksempel på hvordan du kan bruke en slik funksjon; prøve det ut, eksperimentere og bruke det i egne prosjekter!

Takk for lesing. Anmeldelser



Previous:
Next Page: