Creazione di contenuto interattivo con ActionScript > Rilevamento della presenza di collisioni
Rilevamento della presenza di collisioni
È possibile usare il metodo hitTest dell'oggetto MovieClip per rilevare la presenza di collisioni in un filmato. Il metodo hitTest verifica se un oggetto è entrato in collisione con un clip filmato e restituisce un valore booleano (true o false ). È possibile usare i parametri del metodo hitTest per specificare le coordinate x e y di un'area attiva sullo stage o usare il percorso target di un altro clip filmato come area attiva.
Ogni clip filmato di un filmato è un'istanza dell'oggetto MovieClip. In questo modo è possibile chiamare i metodi dell'oggetto da qualsiasi istanza, come nell'esempio seguente:
myMovieClip.hitTest(target);
È possibile usare il metodo hitTest per verificare la presenza di una collisione di un clip filmato e un punto singolo.
Spostare il mouse sulla forma nel filmato per provare la funzione che rileva la collisione. I risultati di hitTest vengono restituiti nel campo di testo.
È possibile usare il metodo hitTest per verificare la presenza di una collisione tra due clip filmato.
Per provare la funzione che rileva la collisione, trascinare un clip filmato in modo che tocchi l'altro. I risultati di hitTest vengono restituiti nel campo di testo.
Per rilevare la collisione tra un clip filmato e un punto sullo stage:
1 |
Selezionare un clip filmato sullo stage. |
2 |
Scegliere Finestra > Azioni per aprire il pannello Azioni oggetto. |
3 |
Fare doppio clic su trace nella categoria Azioni della lista nel riquadro sinistro. |
4 |
Selezionare la casella di controllo Espressione e immettervi: |
|
trace (this.hitTest(_root._xmouse, _root._ymouse, true); |
|
In questo esempio si usano le proprietà _xmouse e _ymouse come coordinate x e y dell'area attiva e i risultati vengono inviati alla finestra Output in modalità di prova filmato. È inoltre possibile impostare un campo di testo sullo stage in modo che visualizzi i risultati o usi i risultati in un'istruzione if . |
5 |
Scegliere Controlli > Prova filmato e spostare il mouse sul clip filmato per provare la funzione di collisione. |
 |
|
Per rilevare la collisione di due clip filmato:
1 |
Trascinare due clip filmato sullo stage e assegnare loro i nomi di istanza mcHitArea e mcDrag. |
2 |
Creare un campo di testo sullo stage e immettere status nella casella Variabile del pannello Opzioni testo. |
3 |
Selezionare mcHitArea e scegliere Finestra > Azioni. |
4 |
Fare doppio clic su evaluate nella lista nel riquadro sinistro. |
5 |
Immettere il codice seguente nella casella Espressione selezionando gli elementi dalla lista nel riquadro sinistro: |
|
_root.status=this.hitTest(_root.mcDrag); |
6 |
Selezionare l'azione onClipEvent nella finestra di script e scegliere enterFrame come evento. |
7 |
Selezionare mcDrag e scegliere Finestra > Azioni. |
8 |
Fare doppio clic su startDrag nella lista nel riquadro sinistro. |
9 |
Selezionare la casella di controllo Blocca mouse al centro. |
10 |
Selezionare l'azione onClipEvent nella finestra di script e scegliere l'evento Mouse down . |
11 |
Fare doppio clic su stopDrag nella lista nel riquadro sinistro. |
12 |
Selezionare l'azione onClipEvent nella finestra di script e scegliere l'evento Mouse up . |
13 |
Scegliere Controlli > Prova filmato e trascinare il clip filmato per provare la funzione di collisione. |
 |
|
Per ulteriori informazioni sul metodo hitTest , vedere la voce corrispondente nel Dizionario di ActionScript.
|