package{ import flash.display.Sprite; import flash.events.Event; import org.papervision3d.cameras.Camera3D; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; public class pv3d_base extends Sprite{ public var viewport:Viewport3D// O Viewport public var render:BasicRenderEngine// A engine para renderizar ou Rendering Engine public var default_scene:Scene3D// Uma Scene public var default_camera:Camera3D// Um Câmera public function pv3d_base(){ } public function init(largura:Number, altura:Number):void { initPapervision(largura, altura);// Inicializa o papervision init3d();// Inicializa objetos 3d initEvents();// Seta qualquer event listeners.. } protected function initPapervision(largura:Number, altura:Number):void { viewport = new Viewport3D(largura, altura, false, true) // adiciona o viewport addChild(viewport)// Adiciona o viewport no stage... render = new BasicRenderEngine() // inicia o render default_scene = new Scene3D(); default_camera = new Camera3D();// foco da camera } protected function init3d():void { //conteudo da cena } protected function initEvents():void { addEventListener(Event.ENTER_FRAME, onEnterFrame); } protected function processa():void { // roda as animações } protected function onEnterFrame( ThisEvent:Event ):void { //renderiza e chama a fucnao processa processa() render.renderScene(default_scene, default_camera, viewport) } } }