Sfat rapid Cum să detectați direcția mouse-ului utilizând ActionScript

În acest sfat rapid veți învăța cum să obțineți direcția actuală a mouse-ului în aplicația dvs. Flash folosind AS3. Ați putea folosi acest lucru pentru a crea o metodă de control interesantă pentru un joc, folosind un mouse ca un joystick, de exemplu. Pentru moment, vom afișa direcția pe ecran.


previzualizare

Iată un exemplu rapid pentru a demonstra ce ne străduim:


Prezentare scurta

Folosind un eveniment MouseEvent.MOUSE_MOVE vom monitoriza mișcarea cursorului mouse-ului, vom stoca datele în variabile și vom afișa direcția curentă.


Pasul 1: Creați un fișier nou

Deschideți Flash și creați un fișier Flash nou (ActionScript 3).


Pasul 2: Panoul de acțiuni deschis

Apăsați Opțiuni + F9 sau mergeți la Fereastra> Acțiuni pentru a deschide Panoul de acțiuni.


Pasul 3: Variabile

Introduceți variabilele pe care le vom folosi; numele lor sunt destul de explicative:

var previousX: Number = 0; var previousY: Number = 0; var curentX: număr = 0; var curentY: număr = 0; var xDir: String; var yDir: String; var dir: TextField = TextField nou ();

Pasul 4: Funcția principală

Aceasta este principala funcție:

 funcția getMouseDirection (): void dir.width = stage.stageWidth; // Dimensiunea câmpului text addChild (dir); // Adăugă câmpul de text la scenă // Adaugă un asistent de mișcare a mouse-ului în scenă și execută funcția checkDirection când apare o mișcare a mouse-ului stage.addEventListener (MouseEvent.MOUSE_MOVE, checkDirection); 

Pasul 5: Verificați direcția

Acest cod numește funcțiile care verifică direcția și afișează rezultatul în etapa TextField.

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

Pasul 6: Obțineți indicații

Verificați direcțiile mouse-ului.

 // Funcția orizontală getHorizontalDirection (): void previousX = currentX; // Verifică ultima poziție currentX = stage.mouseX; // Se obține poziția curentă dacă (previousX> currentX) // Compară ambele poziții pentru a determina direcția xDir = "left";  altfel dacă (anteriorX < 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) // Compară ambele poziții pentru a determina direcția yDir = "up";  altfel dacă (anteriorY < currentY)  yDir = "down";  else  yDir = "none";  

Pasul 7: Rularea funcției

Pentru a porni funcția, adăugați această linie la cod. Odată ce funcția getMouseDirection () este executată, aceasta va configura MOUSE_MOVE ascultător de evenimente care activează indicatorul de direcție.

getMouseDirection ();

Pasul 8: Versiunea pentru clasa de documente

 pachet import flash.display.MovieClip; import flash.text.TextField; importul flash.events.MouseEvent; clasa publică MouseMoveDemo extinde MovieClip public var previousX: Number = 0; public var previousY: Number = 0; public var actualX: Număr = 0; public var currentY: Număr = 0; public var xDir: String; public var yDir: String; public var dir1: TextField = TextField nou (); public var dir2: TextField = TextField nou (); funcția publică MouseMoveDemo () getMouseDirection ();  funcția publică getMouseDirection (): void dir1.width = stage.stageWidth; addChild (dir1); dir2.width = stage.stageWidth; dir2.y = 50; addChild (dir2); stage.addEventListener (MouseEvent.MOUSE_MOVE, checkDirection);  funcția publică checkDirection (e: MouseEvent): void getHorizontalDirection (); getVerticalDirection (); dir1.text = "x:" + xDir dir2.text = "y:" + yDir;  funcția publică getHorizontalDirection (): void previousX = currentX; curentX = stage.mouseX; dacă (anteriorX> curentX) xDir = "stânga";  altfel dacă (anteriorX < currentX)  xDir = "right";  else  xDir = "none";   public function getVerticalDirection():void  previousY = currentY; currentY = stage.mouseY; if (previousY > curentY) yDir = "sus";  altfel dacă (anteriorY < currentY)  yDir = "down";  else  yDir = "none";    

Optați pentru această abordare dacă preferați să utilizați mai degrabă o clasă de documente decât un cod de timp. Citiți acest sfat rapid dacă nu sunteți sigur ce să faceți cu el.

Puteți folosi această clasă pentru a încorpora un indicator de direcționare a mouse-ului în orice proiect. Copiați întreaga clasă într-un nou fișier AS, salvați-l ca "MouseMoveDemo.as", apoi îl puteți referi utilizând următorul fragment:

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

Concluzie

Acesta este un exemplu de bază pentru modul în care puteți utiliza o astfel de funcție; încercați, experimentați și utilizați-o în propriile dvs. proiecte!

Vă mulțumim pentru lectură.

Cod