Hvordan Dra objekter med AS3

Hvordan Dra objekter med AS3


Opprette en dra-og-slipp-funksjonalitet i Actionscript 3 (AS3) er en relativt grei oppgave. Med bare noen få linjer med kode, kan du dra og slippe omtrent alle element i Flash. Den enkleste måten å implementere dra-n-slipp-funksjonalitet er ved bruk av MovieClip metoder startdrag () og stopdrag (). Dette er vanligvis en mus hendelse som utløses inne Flash-programmet. Dra-og-slipp-funksjonalitet har mange varianter som kan brukes til å implementere ulike handlinger inne Flash.

Bruksanvisning

1 Åpne Flash programmet og sette opp gjenstander som skal brukes til dette prosjektet. Tegn eller importere grafikk eller elementene som du vil dra og sette dem opp på hovedscenen. Slik importerer du et ferdig objekt, velger du "Fil" "Import" "Importer til Stage".

2 Konverter opprettet eller importert objekt til et symbol ved å klikke på den og trykke F8. I dette tilfellet, navngi objektet "ball_mc" og definere det som et filmklipp ved hjelp av rullegardinlisten gitt. Legg merke til at objektet vil bli referert i AS3 koden ved hjelp av dette navnet.

3 Høyreklikk på "Layer 1" på tidslinjen og velg "Sett Layer." Navn det nye laget "Handlinger".

4 Klikk på ramme 1 på "Handlinger" laget og trykk F9. Legg inn koden under i popup-vinduet:

ball_mc.addEventListener (MouseEvent.MOUSE_DOWN, dra);

ball_mc.addEventListener (MouseEvent.MOUSE_UP, drop);

funksjon dra (event: Mouseevent): void {

ball_mc.startDrag ();

}

funksjon dråpe (event: Mouseevent): void {

ball_mc.stopDrag ();

}

5 Trykk "Ctrl + Enter" for å teste dra-og-slipp-funksjonalitet.

Hint

  • Dras objekter kan styres ved å definere grensene utenfor hvilken gjenstandene ikke kan krysse. Denne begrensningen oppnås ved å definere x, y, bredde og høyde parametere av markeringsområde, som vist ved koden under:
  • // Den x-y-koordinatene
  • Var my_x: int = stage.stageWidth-ball_mc.width;
  • Var my_y: int = stage.stageHeight-ball_mc.height;
  • // Høyden og bredden
  • Var myWidth: int = 0-my_x;
  • Var myHeight: int = 0-my_y;
  • // Opprett en ny forekomst av rektangelet klassen med koordinatene over.
  • Var boundArea: rektangel = new rektangel (my_x, my_y, myWidth, myHeight);
  • // Musen ned og opp hendelsen lyttere
  • ball_mc.addEventListener (MouseEvent.MOUSE_DOWN, dra);
  • ball_mc.addEventListener (MouseEvent.MOUSE_UP, drop);
  • // Denne funksjonen drar objektet, men begrenser til scenen grenser.
  • funksjon dra (event: Mouseevent): void {
  • ball_mc.startDrag (falsk, boundArea);
  • }
  • // Denne funksjonen slipper ballen objekt.
  • funksjon dråpe (event: Mouseevent): void {
  • ball_mc.stopDrag ();