extending the basic view
as3 :: making papervision3D setup simpler
the core PV3D team has released a new class called the basicView. the idea here is to create one object that already contains the camera, scene, viewport, and render engine needed to made a 3D scene in flash.
after reading the post about it on andy’s blog, you can see that this is a very simple technique. but lets take it one step further. why not create a new actionscipt project that extends basic view?! its very simple, and makes setting up your scene a snap!
package {
import com.fontvirus.*;
import flash.display.*;
import flash.events.Event;
import org.papervision3d.cameras.*;
import org.papervision3d.core.render.data.RenderStatistics;
import org.papervision3d.lights.*;
import org.papervision3d.materials.shadematerials.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.scenes.*;
import org.papervision3d.view.*;
[SWF(backgroundColor="#000000")]
public class basicPV3D extends BasicView
{
private var thelight :PointLight3D;
private var thing :Sphere;
private var fps :FlashFPS;
private var stats :RenderStatistics;
public function basicPV3D():void
{
super(0,0,true,true,Camera3D.TYPE);
stats = this.renderer.renderScene(this.scene, this.camera, this.viewport);
this.viewport.autoClipping = false;
init3D();
}
private function init3D():void
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
fps = new FlashFPS(0x006600, 0x000000, 0xffffff, 0, "kb");
addChild(fps);
thelight = new PointLight3D();
scene = new Scene3D();
thing = new Sphere(new PhongMaterial(thelight, 0x00FF00, 0x000000, 4), 500, 10, 14);
scene.addChild(thing);
startRendering();
}
override protected function onRenderTick(event:Event=null):void
{
fps.update("rendered: " + stats.shadedTriangles + " polys");
thing.rotationY++;
super.onRenderTick(event);
}
}
}
this demo is so basic i decided not to post a swf...
but this can be run using flex builder 3 or flash cs3 and the papervision3D - 2.0 great white sources.