Articoli

Papervision3D -L'interattività dell'oggetto

Oltre all'interattività del materiale, abbiamo a disposizione l'interattività dell'oggetto, che viene utilizzato specificamente quando si desidera che l'intero oggetto 3D sia interattivo. Questo consente di aggiungere sensori degli eventi agli oggetti 3D e aspettare che siano loro a essere attivati. Questi eventi possono essere trovati all'interno della classe InteractiveScene3DEvent, che si trova in Papervision3D nel pacchetto org.papervision3d.events.

Il settaggio dell'interattività degli oggetti è essenzialmente lo stesso dell'interattività dei materiali.

Sia l'interattività della viewport che la proprietà interattività del materiale deve essere impostata su true.

private function init():void
{
  viewport.interactive = true;
  var material:ColorMaterial = new ColorMaterial();
  material.doubleSided = true;
  material.interactive = true;
  var plane:Plane = new Plane(material);

Questo è solo l'impostazione dell'interattività viewport su true, poi abbiamo creato un'istanza di un materiale colore interattivo a doppia faccia , e l'abbiamo applicato al piano che creiamo.

Una volta che il piano è stato istanziato, possiamo aggiungere un listener di eventi per gli eventi interattivi  della scena 3D, e aggiungere il piano alla scena.

  plane.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK,click);
  scene.addChild(plane);
}

Ogni volta che l'utente fa clic sul piano, ciò si tradurrà in una chiamata al metodo clic con InteractiveScene3DEvent passato come parametro. Questo evento contiene interessanti informazioni come quale faccia dell'oggetto 3D è stata cliccata e quale oggetto è stato cliccato. Sapere quale oggetto 3D è stato cliccato può essere molto utile quando  sono state definite più listener per più oggetti. In questo modo è facile avere il controllo sull'oggetto che è stato cliccato. Per ora, usiamo le informazioni per ruotare il piano sul suo asse y.

private function click(e:InteractiveScene3DEvent):void
{
e.displayObject3D.localRotationY +=12;
}

I seguenti autoesplicativi eventi possono essere applicati ad un oggetto Display3D:
• InteractiveScene3DEvent.OBJECT_ADDED
• InteractiveScene3DEvent.OBJECT_CLICK
• InteractiveScene3DEvent.OBJECT_DOUBLE_CLICK
• InteractiveScene3DEvent.OBJECT_MOVE
• InteractiveScene3DEvent.OBJECT_OUT
• InteractiveScene3DEvent.OBJECT_OVER
• InteractiveScene3DEvent.OBJECT_PRESS
• InteractiveScene3DEvent.OBJECT_RELEASE
• InteractiveScene3DEvent.OBJECT_RELEASE_OUTSIDE
Come si può vedere molti degli eventi sono relativi all'uso del mouse.

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.