Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Gestire gli eventi

Aggiungere intereattività alle animazioni
Aggiungere intereattività alle animazioni
Link copiato negli appunti

In Papervision gli eventi vengono gestiti in modo molto simile a quello usato da Flash. Un evento può essere scatenato dalla pressione di un tasto sulla tastiera (in questo caso è gestito con le classiche istruzioni di Flash), dal moviemento del mouse, o dalla fine del caricamento di una texture.

In questa lezione vediamo come collegare gli eventi del mouse ai materiali applicati. Nella pratica aggiungeremo l'evento all'oggetto, ricordando di rendere la texture interattiva.

La classe più usata è sicuramente InteractiveScene3DEvent il cui costruttore è

InteractiveScene3DEvent( type:String, 
                         container3d:DisplayObject3D = null,
                         sprite:Sprite = null, 
                         face3d:Triangle3D = null,
                         x:Number = 0, y:Number = 0,
                         renderhitData:RenderHitData = null,
                         bubbles:Boolean = false,
                         cancelable:Boolean = false)

Per il momento disinteressiamoci di tutti questi parametri visto che, e concentriamoci sulle costanti che determinano il tipo di evento:

Costante Descrizione "chiamata"
OBJECT_ADDED all'aggiunta di un oggetto figlio
OBJECT_CLICK al click del mouse sull'oggetto
OBJECT_DOUBLE_CLICK al doppio click del mouse sull'oggetto
OBJECT_MOVE quando il puntatore del mouse si muove sopra ad un oggetto
OBJECT_OUT quando il puntatore del mouse esce dall'oggetto
OBJECT_OVER quando il puntatore del mouse va sopra ad un oggetto
OBJECT_PRESS alla pressione del mouse
OBJECT_RELEASE al rilascio del mouse
OBJECT_RELEASE_OUTSIDE al rilascio del mouse quando il puntatore è fuori dall'oggetto

L'uso degli eventi è poi pressocché identico a quello di flash per cui creato un solido avremo che

materiale.interactive = true;
//...
solido.addEventListener( InteractiveScene3DEvent.OBJECT_OVER,
                         mia_funzione);

function mia_funzione(event:InteractiveScene3DEvent):void
{
  trace (event.displayObject3D.name);
}

Notiamo che all'interno della funzione per richiamare il solido dal parametro passato alla funzone dobbiamo scrivere event.displayObject3D. Vediamo ora un esempio pratico dell'uso degli eventi:

Possiamo vedere tutto il codice dell'esempio qui

Ti consigliamo anche