Código :
//Importo las clases necesarias import flash.display.Sprite; import flash.events.Event; import org.papervision3d.cameras.Camera3D; import org.papervision3d.objects.Cube; import org.papervision3d.scenes.MovieScene3D; import org.papervision3d.materials.*; //Defino variables var container: Sprite; var scene: MovieScene3D; var camera: Camera3D; var cubo: Cube; //Esta variables va a contener los nombres de los 6 materiales que voy a utilizar para cada cara del cubo var listaMateriales:MaterialsList = new MaterialsList(); //FUNCIONES //Función inicial function Empezar(){ CrearEscena(); CrearCamara(); CrearMatrizMateriales(); CrearCubo(); } //Crea la escena 3D function CrearEscena(){ //Creo un contenedor para la escena y lo coloco en el centro del escenario container = new Sprite; container.x = 200; container.y = 200; addChild( container ); //Creo la escena 3D a partir del contenedor scene = new MovieScene3D( container ); } //Creo la cámara que va a "mostrar" la escena function CrearCamara(){ //Creo la camara y la "alejo" de la escena para que muestre el cubo camera = new Camera3D(); camera.z = -200; camera.zoom = 2; } //Relleno la matriz de materiales. Se puede utilizar rejilla, imágenes, clips, relleno de color, etc.... function CrearMatrizMateriales(){ //Creo los materiales //Material del tipo rejilla de color rojo var material1:WireframeMaterial = new WireframeMaterial(0xFF0000); //Material del tipo MovieClip, con el clip llamado MaterialClip del escenario var material2:BitmapAssetMaterial = new BitmapAssetMaterial("cover"); //Material del tipo MovieClip almacenado en biblioteca. Su Clase debe ser MaterialClipBiblioteca var material3:BitmapAssetMaterial = new BitmapAssetMaterial("cover"); //Material del tipo BitMap almacenado en Biblioteca. La clase de vinculacion es árbol var material4:BitmapAssetMaterial = new BitmapAssetMaterial("cover"); //Material del tipo ColorMaterial, de color azul. Simplemente especificamos de que color se tiene //que rellenar la cara var material5:ColorMaterial = new ColorMaterial(0x0000FF); //Material del tipo BitmapFileMaterial, con una imagen externa. Indicamos //La ruta de la imagen var material6:BitmapAssetMaterial = new BitmapAssetMaterial("cover"); //Creo la lista de materiales para el cubo, indicando que material va en cada cara listaMateriales.addMaterial(material1,"top"); listaMateriales.addMaterial(material2,"bottom"); listaMateriales.addMaterial(material3,"front"); listaMateriales.addMaterial(material4,"back"); listaMateriales.addMaterial(material5,"left"); listaMateriales.addMaterial(material6,"right"); } //Crear el cubo function CrearCubo(){ //Creo el Cubo cubo = new Cube( listaMateriales, 128, 128, 128, 2, 2, 2); // rotate the cube a bit cubo.rotationX = 35; cubo.rotationY = 55; //Añado el cubo al escenario scene.addChild( cubo ); //Renderizo la escena scene.renderCamera( camera ); addEventListener(Event.ENTER_FRAME,RotarCubo); } //Función para rotar el cubo. Al acabar de rotar renderizo la escena para que //se visualicen los cambios function RotarCubo(e:Event){ trace("Aqui"); cubo.rotationX+=3; cubo.rotationY++; cubo.rotationZ++; scene.renderCamera(camera); } //Ejecutamos Empezar();
Estoy utilizando la version 1.5 de papervision y el error que tira es el siguiente:
1067: Implicit coercion of a value of type org.papervision3d.materials:MaterialsList to an unrelated type org.papervision3d.core.proto:MaterialObject3D.
Quien pueda ayudarme se lo voy a agradecer porque es urgente!!!