Articoli

Papervision3D - interattività del materile

logoPV3D

Con l'interattività del materiale si intende fare sì che tutti gli eventi disponibili per ilmouse in un filmato normale di Flash siano disponibili in combinazione con un materiale di papervision3D. Questa tecnica è principalmente usata per fare in modo che alcune parti di un materiale siano cliccabili.
La definizione dei sensori che sono in attesa dell'interattività del mouse può essere eseguita esattamente nello stesso modo in cui si farebbe normalmente con un clip filmato o sprite. Questo funziona out of the box, purché l'interattività della viewport  e del materiale siano impostate entrambi su true.

Quando si lavora con una risorsa tipo il clip filmato come materiale, è anche possibile utilizzare il timeline scripting per definire i sensori. 

Utilizzare il buttonMode

Un problema comune è che di default non si vede un cursore a forma di mano (tipico dei filmati flash) quando passa su di una zona interattiva del nostro materiale. Per ottenere ciò, un piccolo trucco potrebbe essere istituire un listener di eventi MOUSE_OVER e un listener di eventi MOUSE_OUT su dei pulsanti. Ogni volta che viene inviato un evento MOUSE_OVER, è possibile impostare il parametro buttonMode  del viewport su true. Su ogni MOUSE_OUT è possibile impostarelo su false nuovamente.
Ciò comporterà lo stesso comportamento sia con uno sprite che con un clip filmato che ha il buttonMode impostato su true:

private function mouseOver(e:MouseEvent):void
{
  viewport.buttonMode = true;
}
private function mouseOut(e:MouseEvent):void
{
  viewport.buttonMode = false;
}

Siccome abbiamo bisogno di avere accesso alla finestra di visualizzazione, questo trucco funziona solo quando non si fanno operazioni con le risorse clip filmato che fanno uso della timeline di scripting, e quando il listener di eventi sono definiti a livello locale sulla timeline. Un modo per risolvere questo problema è quello di rendere l'asset della viewport sensibile, impostando un riferimento alla viewport dopo che l'asset è stata creata attraverso un'istanza della classe MovieAssetMaterial. localViewportReference.buttonMode può essere impostata su true sui rollover del mouse che vengono definiti localmente nella risorsa.

Definire i listener di eventi

Se si lavora con la classe MovieAssetMaterial e si desidera impostare dei sensori, è necessario avere accesso al film che si istanzia automaticamente. Tutti i tipi di classe che  hanno ereditato da MovieMaterial la proprietà speciale chiamata film. Questa proprietà della classe contiene un'istanza dell'oggetto di visualizzazione utilizzato come materiale. Assumendo che è presente un pulsante chiamato btn definito all'interno della vostra asset di clip filmato, è possibile l'accesso come segue e impostare i listener di eventi:

MovieClip(material.movie).getChildByName("btn").addEventListener(
MouseEvent.CLICK,click);
MovieClip(material.movie).getChildByName("btn").addEventListener(
MouseEvent.MOUSE_OVER,mouseOver);
MovieClip(material.movie).getChildByName("btn").addEventListener(
MouseEvent.MOUSE_OUT,mouseOut);

Poichè material.movie ha un oggetto di visualizzazione come riferimento, abbiamo bisogno di lanciarlo al MovieClip, al fine di utilizzare getChildByName () e ottenere un riferimento al pulsante definito nell'asset.
L'interattività del materiale è molto utile quando si desidera rendere parti del materiale cliccabili. Se si desidera che l'intero oggetto sia cliccabile, è possibile utilizzare un materiale clip filmato e aggiungere un pulsante trasparente per lo strato superiore, e ascoltare l'evento MouseEvent.CLICK. Questo potrebbe funzionare, ma poi si è limitati esclusivamente ai materiali del tipo clip filmato. È qui che entra in gioco l'interattività dell'oggetto.

Filippo Porcari
Author: Filippo PorcariWebsite: http://filippo.porcari.oranjuice.org/Email: Questo indirizzo email è protetto dagli spambots. E' necessario abilitare JavaScript per vederlo.
designer freelance
Sono un graphic designer e mi occupo di pubblicità. Da più di 10 anni dedico le mie energie alla realizzazioni d'immagine aziendale e comunicazione visiva con un'attenzione alle nuove tecnologie del web. Da qualche anno ho scoperto il software open source e mi sono dedicato alla sua introduzione nel mio workflow produttivo ottenendo ottimi risultati.

© copyright 2011

Porcari Filippo studio grafico - p.iva 01985590023

Tutti i diritti riservati.