Olá pessoal como havia prometido nosso mais novo tutorial papervision não estamos usando o Cubo, para diversificar um pouco decidi utilizar a Esfera.
Este tutorial é essencial para ter uma base de criação de site em papervion, neste tutorial vamos aprender a colocar nosso viewport para aceitar interação e definiremos nossa esfera para funcionar como botão simples, onde a única funcionalidade será pausar e retomar a rotação.
Depois de uma seqüência de tutoriais sobre papervision existe muitos pontos que não precisarei explicar de novo, como por exemplo: inserir uma esfera e importar uma textura para ela. Hoje me focarei somente nos pontos chaves.
Viewport3D
O viewport é o nosso ambiente 3d, extremamente essencial para criar algo com o papervision, quando criamos nosso viewport3d podemos definir alguns parâmetros iniciais.
new niewport3D(width, height, autoscale, interactive)
- width (Number): Define a largura de nosso viewport3d;
- height (Number): Define a altura de nosso viewport3d;
- autoscale (Boolean): Determina se o viewport vai se escalar ao Stage.
- Interactive (Boolean): Permite o uso de interações com o mouse, possibilitando o uso do evento InteractiveScene3DEvent.
Criando Interação
Em nosso código passaremos a definir o parâmetro interativo para true. Com o viewport definido para true poderemos definir agora nosso material para interative possibilitando ele ser clicado quando estiver em um objeto primitivo.Neste exemplo eu usarei o MovieMaterial, mas vocês poderiam utilizar qualquer outro tipo de material, lembrando que com o movie material eu importo um movieclip que esteja em minha biblioteca ou que já tenha sido instanciado.
skin = new MovieMaterial(mov); skin.interactive = true;
Agora poderemos adicionar um listener em nossa esfera chamando o evento de interação especifico seguido de um método que será executado.
esfera.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS,PRESS);
Código: main.as
package { import flash.display.Sprite; import flash.display.MovieClip; import flash.events.Event; import org.papervision3d.materials.MovieMaterial; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; import org.papervision3d.cameras.Camera3D; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.events.InteractiveScene3DEvent;
public class main extends Sprite { public var cena:Scene3D; public var viewport:Viewport3D; public var camera:Camera3D; public var renderer:BasicRenderEngine; public var esfera:Sphere; public var mov:MovieClip = new earth(); public var skin:MovieMaterial; public var paused:Boolean = false;public function main () { Set (); Objetos (); } public function Set ():void { viewport = new Viewport3D(300,300,false,true); addChild (viewport); cena = new Scene3D ; renderer = new BasicRenderEngine ; camera = new Camera3D ; } public function Objetos ():void { skin = new MovieMaterial(mov); skin.interactive = true;esfera = new Sphere(skin,300,30);
cena.addChild(esfera);esfera.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS,PRESS);
addEventListener (Event.ENTER_FRAME,Loop,false, 0, true); } public function PRESS (e:InteractiveScene3DEvent ):void { paused = !paused; } public function Loop (e:Event):void { if (!paused) { esfera.roll(1) esfera.yaw(3) esfera.pitch(1) } renderer.renderScene (cena,camera,viewport); } } }Lembrando que para este tutorial funcionar devemos importer as classes do papervision e definir como classe padrão do fla a classe main,
Tentei fazer algo bem simples para demonstrar a interação do mouse com o papervision, com isso podemos criar diversas coisas seguindo a criatividade de cada um. Tentarei fazer algo mais elaborado para próximo tutorial. Espero que tenham gostado e que estes tutoriais sobre papervision estejam sendo úteis para vocês em seus estudos. Bem ate a próxima.