Practical Web Applications for Daily Living…
papervision3D
Sample Code for Displaying 3D in Flash using papervision3D
Nov 20th
Assuming that you already have the papervision3D library installed in your server… here is the code for display a rotating cube,
import flash.display.Sprite;
import flash.events.Event;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.render.BasicRenderEngine;
public class PV3CUBE extends Sprite
{
private var viewport: Viewport3D;
private var scene: Scene3D;
private var camera: Camera3D;
private var material: ColorMaterial;
private var primitive: Cube;
private var renderer: BasicRenderEngine;
public function PV3CUBE():void
{
//viewport = new BasicRenderEngine(width, height, scaleToStage, interactive);
viewport = new Viewport3D(550, 400, false, true);
addChild(viewport);
//instantiates a Scene3D instance
scene = new Scene3D();
//instantiates a Camera3D instance
camera = new Camera3D();
//renderer draws the scene to the stage
renderer = new BasicRenderEngine();
//ColorMaterial, doubleSided draws the color on both sides of the geometry normals
material = new ColorMaterial(0xFF9900);
material.doubleSided = true;
var materialsList:MaterialsList = new MaterialsList();
materialsList.addMaterial(material,"front");
materialsList.addMaterial(material,"back");
materialsList.addMaterial(material,"left");
materialsList.addMaterial(material,"right");
materialsList.addMaterial(material,"top");
materialsList.addMaterial(material,"bottom");
primitive = new Cube(materialsList,500,500,500,3,3,3);
scene.addChild(primitive);
//primitive = new Plane(material applied to object, width, height, wSegments, hSegments);
//set up enterFrame event
addEventListener(Event.ENTER_FRAME, onEnterFrame);
//define enterFrame Method, render the PV3D Scene and animate the primitive
function onEnterFrame(e:Event):void
{
primitive.rotationY += 2;
renderer.renderScene(scene, camera, viewport);
}
}
}
}
