Kurztipp Ermitteln der Mausrichtung mithilfe von ActionScript

In diesem Quick Tip erfahren Sie, wie Sie mit AS3 die aktuelle Richtung der Maus in Ihrer Flash-Anwendung ermitteln. Sie können damit eine interessante Steuermethode für ein Spiel erstellen, beispielsweise mit einer Maus wie einem Joystick. Im Moment zeigen wir nur die Richtung auf dem Bildschirm.


Vorschau

Hier ein kurzes Beispiel, um zu zeigen, woran wir arbeiten:


Kurzübersicht

Mit einem MouseEvent.MOUSE_MOVE -Ereignis überwachen wir die Bewegung des Mauszeigers, speichern die Daten in Variablen und zeigen die aktuelle Richtung an.


Schritt 1: Erstellen Sie eine neue Datei

Öffnen Sie Flash und erstellen Sie eine neue Flash-Datei (ActionScript 3)..


Schritt 2: Öffnen Sie den Aktionsbereich

Drücken Sie die Wahltaste + F9 oder öffnen Sie das Fenster Aktionen> Fenster, um den Aktionsbereich zu öffnen.


Schritt 3: Variablen

Geben Sie die zu verwendenden Variablen ein. ihre Namen sind ziemlich selbsterklärend:

var previousX: Number = 0; var previousY: Anzahl = 0; var currentX: Number = 0; var currentY: Anzahl = 0; var xDir: String; var yDir: String; var dir: TextField = neues TextField ();

Schritt 4: Hauptfunktion

Dies ist die Hauptfunktion:

 function getMouseDirection (): void dir.width = stage.stageWidth; // Größe des Textfeldes addChild (dir); // Fügt der Bühne das Textfeld hinzu // Fügt der Bühne einen Mausbewegungslistener hinzu und führt die Funktion checkDirection aus, wenn eine Mausbewegung auftritt stage.addEventListener (MouseEvent.MOUSE_MOVE, checkDirection); 

Schritt 5: Überprüfen Sie die Richtung

Dieser Code ruft die Funktionen auf, die die Richtung überprüfen, und zeigt das Ergebnis in der Stufe TextField an.

 function checkDirection (e: MouseEvent): void getHorizontalDirection (); getVerticalDirection (); dir.text = "x:" + xDir + ", y:" + yDir; 

Schritt 6: Wegbeschreibungen abrufen

Überprüfen Sie die Mausrichtungen.

 // Horizontale Funktion getHorizontalDirection (): void previousX = currentX; // Überprüft die letzte Position currentX = stage.mouseX; // Ruft die aktuelle Position ab, wenn (previousX> currentX) // vergleicht beide Positionen, um die Richtung zu bestimmen xDir = "left";  else if (vorherigeX < currentX)  xDir = "right";  else  xDir = "none";   //Vertical function getVerticalDirection():void  previousY = currentY; //Checks the last position currentY = stage.mouseY; //Gets the current position if (previousY > currentY) // Vergleicht beide Positionen, um die Richtung zu bestimmen yDir = "up";  else if (vorherigerJ < currentY)  yDir = "down";  else  yDir = "none";  

Schritt 7: Ausführen der Funktion

Um die Funktion zu starten, fügen Sie diese Zeile zum Code hinzu. Sobald die getMouseDirection () - Funktion ausgeführt wird, wird der Ereignis-Listener MOUSE_MOVE eingerichtet, der den Richtungsanzeiger aktiviert.

getMouseDirection ();

Schritt 8: Dokumentenklassenversion

 package import flash.display.MovieClip; import flash.text.TextField; import flash.events.MouseEvent; public class MouseMoveDemo erweitert MovieClip public var previousX: Number = 0; public var previousY: Anzahl = 0; public var currentX: Number = 0; public var currentY: Anzahl = 0; public var xDir: String; public var yDir: String; public var dir1: TextField = neues TextField (); public var dir2: TextField = neues TextField (); public function MouseMoveDemo () getMouseDirection ();  public function getMouseDirection (): void dir1.width = stage.stageWidth; addChild (dir1); dir2.width = stage.stageWidth; dir2.y = 50; addChild (dir2); stage.addEventListener (MouseEvent.MOUSE_MOVE, checkDirection);  public function checkDirection (e: MouseEvent): void getHorizontalDirection (); getVerticalDirection (); dir1.text = "x:" + xDir dir2.text = "y:" + yDir;  public function getHorizontalDirection (): void previousX = currentX; currentX = stage.mouseX; if (previousX> currentX) xDir = "left";  else if (vorherigeX < currentX)  xDir = "right";  else  xDir = "none";   public function getVerticalDirection():void  previousY = currentY; currentY = stage.mouseY; if (previousY > currentY) yDir = "up";  else if (vorherigerJ < currentY)  yDir = "down";  else  yDir = "none";    

Entscheiden Sie sich für diesen Ansatz, wenn Sie lieber eine Dokumentenklasse als Timeline-Code verwenden möchten. Lesen Sie diesen kurzen Tipp, wenn Sie nicht sicher sind, was Sie damit machen sollen.

Mit dieser Klasse können Sie einen Mausrichtungsanzeiger in ein Projekt einbetten. Kopieren Sie einfach die gesamte Klasse in eine neue AS-Datei, speichern Sie sie als "MouseMoveDemo.as" und können Sie sie mit dem folgenden Snippet referenzieren:

 var mouseMoveDemo: MouseMoveDemo = new MouseMoveDemo (); addChild (mouseMoveDemo);

Fazit

Dies ist ein grundlegendes Beispiel dafür, wie Sie eine solche Funktion verwenden können. Probieren Sie es aus, experimentieren Sie und verwenden Sie es in Ihren eigenen Projekten!

Danke fürs Lesen.