Î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.
Iată un exemplu rapid pentru a demonstra ce ne străduim:
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ă.
Deschideți Flash și creați un fișier Flash nou (ActionScript 3).
Apăsați Opțiuni + F9 sau mergeți la Fereastra> Acțiuni pentru a deschide Panoul de acțiuni.
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 ();
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);
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;
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";
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 ();
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);
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ă.