/** * Author: xleon, http://www.xinterface.net (malandro@gmail.com) */ package { import flash.display.Sprite; import flash.events.Event; import org.papervision3d.cameras.Camera3D; import org.papervision3d.materials.WireframeMaterial; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.BasicView; [SWF(frameRate="31", width="500", height="350", backgroundColor="0xffffff")] public class BasicViewSample extends Sprite { private var bView:BasicView; public function BasicViewSample() { Init3D(); } private function Init3D():void { // Creamos el BasicView que contiene viewport, camera, renderer, etc bView = new BasicView(500, 350, false, false); // añadimos la vista al displayList addChild(bView); // Configuramos la cámara: bView.camera.focus = 25; bView.camera.zoom = 10; bView.camera.z = -500; bView.camera.y = 300; bView.camera.x = 0; CreateObjects(); addEventListener(Event.ENTER_FRAME, Loop3D); } private function CreateObjects():void { var mat:WireframeMaterial = new WireframeMaterial; mat.doubleSided = true; var plane:Plane = new Plane(mat, 500, 500, 8, 8); plane.rotationX = -90; // lo añadimos a la escena del BasicView. bView.scene.addChild(plane); //camera.target = plane; } private function Loop3D(e:Event):void { var radio:uint = 500; var angulo:Number = mouseX + (stage.stageWidth / 2); Camera3D(bView.camera).x = radio * Math.cos(angulo / 100); Camera3D(bView.camera).z = radio * Math.sin(angulo / 100); Camera3D(bView.camera).y = - mouseY + (stage.stageHeight / 2) + 100; // llamamos al método de renderizado del BasicView: bView.singleRender(); } } }