Y hace mucho pero mucho... cuando todavía... cambiando un poquito, un ejemplo básico de inicio para Papervision3D 2.0, la librería y demás recursos los pueden encontrar en http://papervision3d.googlecode.com y nuestro resultado final será esto:

Para poder empezar y generar nuestro espacio 3d necesitamos de 4 clases básicas para generar el entorno Viewport, Scene3D, Camera3D y BasicRenderEngine.

  1. package{
  2.    
  3.     import flash.display.Sprite;
  4.     import flash.events.Event;
  5.    
  6.     import org.papervision3d.scenes.Scene3D;
  7.     import org.papervision3d.cameras.Camera3D;
  8.     import org.papervision3d.render.BasicRenderEngine;
  9.     import org.papervision3d.view.Viewport3D;
  10.    
  11.     import org.papervision3d.objects.primitives.Cube;
  12.     import org.papervision3d.materials.utils.MaterialsList;
  13.     import org.papervision3d.materials.ColorMaterial;
  14.    
  15.     public class HelloCube extends Sprite{
  16.        
  17.         private var scene:Scene3D;
  18.         private var camera:Camera3D;
  19.         private var renderer:BasicRenderEngine;
  20.         private var view:Viewport3D;
  21.        
  22.         private var cube:Cube;
  23.        
  24.         public function HelloCube():void{
  25.             super();
  26.             setupPV3D();
  27.             //Si eres nuevo, este evento captura cada vez que se entra en un nuevo frame de la pelicula
  28.             //esto para que cada vez que suceda esto, se refresque el espacio 3d
  29.             addEventListener(Event.ENTER_FRAME, onEnter);
  30.         }
  31.        
  32.         private function setupPV3D():void{
  33.             //Ahora el elemento que se agrega al stage es el viewport, a diferencia de la version 1.5 recuerdo era la escena
  34.             scene = new Scene3D();
  35.             view = new Viewport3D(640, 480, true);
  36.             addChild(view);
  37.             renderer = new BasicRenderEngine();
  38.             camera = new Camera3D(60);
  39.            
  40.             //Para crear un cubo, se necesita al igual que para todos los objetos el material que compondra su piel
  41.             //en este caso se utiliza un color solido dentro de una lista de materiales indicando
  42.             //el material que le corresponde a cada cara del cubo
  43.             cube = new Cube(new MaterialsList({ front: new ColorMaterial(0x00ccff),
  44.                                                 left: new ColorMaterial(0xccff00),
  45.                                                 right: new ColorMaterial(0xffcc00),
  46.                                                 top: new ColorMaterial(0xff6666),
  47.                                                 bottom: new ColorMaterial(0x00cc33),
  48.                                                 back: new ColorMaterial(0xffffcc) }), 300, 300, 300);
  49.             //Todos los objetos creados son agregados solamente a la escena
  50.             scene.addChild(cube);
  51.            
  52.         }
  53.        
  54.         private function onEnter(e:Event):void{
  55.             //Rota el objeto en el eje X, el número de grados indicados
  56.             cube.pitch(3);
  57.             //Rota el objeto en el eje Y
  58.             cube.yaw(3);
  59.             //Generar la imagen de salida para este frame del espacio 3d
  60.             renderer.renderScene(scene,camera,view);
  61.         }
  62.     }
  63. }

Descargar archivos