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!!!
