Come trascinare gli oggetti con AS3

February 14

Come trascinare gli oggetti con AS3


Creazione di una funzionalità di drag-and-drop in ActionScript 3 (AS3) è un'impresa relativamente semplice. Con poche righe di codice, è possibile trascinare e rilasciare quasi ogni elemento in Flash. Il modo più semplice per implementare la funzionalità drag-n-drop è con l'uso dei metodi MovieClip startDrag () e stopDrag (). Questo è di solito un evento del mouse che viene attivato all'interno dell'applicazione Flash. La funzionalità drag-and-drop ha molte varianti che possono essere utilizzati per implementare diverse azioni all'interno di Flash.

istruzione

1 Aprire il programma Flash e impostare gli oggetti da utilizzare per questo progetto. Disegnare o importare la grafica o gli elementi che si desidera trascinare e impostare sul palco principale. Per importare un oggetto ready-made, selezionare "File" "Importa" "Importa nello stage."

2 Convertire l'oggetto creato o importato un simbolo facendo clic su di esso e premere F8. In questo caso, denominare l'oggetto "ball_mc" e definirlo come un clip filmato utilizzando l'elenco a discesa fornito. Si noti che l'oggetto si farà riferimento nel codice AS3 usando questo nome.

3 Fai clic destro su "Livello 1" sulla timeline e selezionare "Inserisci livello." Un nome al nuovo livello "Azioni".

4 Fare clic sul fotogramma 1 sul livello "Azioni" e premere F9. Aggiungere il codice qui sotto nella finestra di popup:

ball_mc.addEventListener (MouseEvent.MOUSE_DOWN, trascinare);

ball_mc.addEventListener (MouseEvent.MOUSE_UP, drop);

funzione di trascinamento (evento: MouseEvent): void {

ball_mc.startDrag ();

}

goccia di funzione (evento: MouseEvent): void {

ball_mc.stopDrag ();

}

5 Premere il tasto "Ctrl + Invio" per verificare la funzionalità di drag-and-drop.

Consigli e avvertenze

  • oggetti trascinati possono essere controllate mediante la definizione dei confini oltre i quali gli oggetti non possono attraversare. Questa limitazione viene ottenuta definendo i parametri x, y, larghezza e altezza dell'area di delimitazione come mostrato dal seguente codice:
  • // La x & y coordinate
  • var my_x: int = stage.stageWidth-ball_mc.width;
  • var my_y: int = stage.stageHeight-ball_mc.height;
  • // L'altezza e la larghezza
  • var myWidth: int = 0-my_x;
  • var myHeight: int = 0-my_y;
  • // Crea una nuova istanza della classe rettangolo con le coordinate di cui sopra.
  • var boundArea: Rectangle = new Rectangle (my_x, my_y, myWidth, myHeight);
  • // Il mouse su e giù listener di eventi
  • ball_mc.addEventListener (MouseEvent.MOUSE_DOWN, trascinare);
  • ball_mc.addEventListener (MouseEvent.MOUSE_UP, drop);
  • // Questa funzione trascina l'oggetto ma limita ai confini di scena.
  • funzione di trascinamento (evento: MouseEvent): void {
  • ball_mc.startDrag (falso, boundArea);
  • }
  • // Questa funzione rilascia l'oggetto palla.
  • goccia di funzione (evento: MouseEvent): void {
  • ball_mc.stopDrag ();