
Etiquetas: InteractiveScene3DEvent BasicRenderEngine Viewport3D displayObject3D
package{import flash.display.*
public class Materiales extends MovieClip{
import flash.events.Event;
import flash.text.*;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.materials.*;
import org.papervision3d.objects.primitives.Sphere;
import org.papervision3d.events.InteractiveScene3DEvent;
var escena:Scene3D; var renderer:BasicRenderEngine; var camara:Camera3D; var viewport:Viewport3D; var esfera:Sphere;public function Materiales(){
crear3D();
crearObjeto();
}public function crear3D():void{
escena = new Scene3D();
renderer = new BasicRenderEngine();
camara = new Camera3D();
//El cuarto parámetro que paso en el constructor es para la propiedad interactive de viewPort. //Si se van a utilizar eventos de ratón, hay que pasar 'true' (por defecto 'false')viewport = new Viewport3D(500,500,false,true);
addChild(viewport);
camara.z = -500;
addEventListener(Event.ENTER_FRAME, renderizar);
}public function crearObjeto():void{
var material:MovieAssetMaterial = new MovieAssetMaterial("MaterialBiblioteca");
//El material usado en el objeto interactivo debe tener interactive = true (por defecto 'false')material.interactive = true;
esfera = new Sphere(material, 200, 10, 10);
//Por último, se añaden los eventosesfera.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS,esferaPresionada);
esfera.addEventListener(InteractiveScene3DEvent.OBJECT_OVER,esferaOver);
esfera.addEventListener(InteractiveScene3DEvent.OBJECT_OUT,esferaOut);
escena.addChild(esfera);
}private function esferaPresionada(e:InteractiveScene3DEvent):void{
//La función recoge el parámetro e, que tiene el atributo displayObject3D;Texto_txt.text = "Click sobre la esfera " + e.displayObject3D;
}private function esferaOver(e:InteractiveScene3DEvent):void{
Texto_txt.text = "Over sobre la esfera";
}private function esferaOut(e:InteractiveScene3DEvent):void{
Texto_txt.text = "Out sobre la esfera";
}private function renderizar(e:Event):void{
esfera.yaw(1);
renderer.renderScene(escena, camara, viewport);
} }}