ALK Armando Leopoldo Keller


Eventos em objetos com Papervision 2.0 (Great White)
10 Janeiro, 2008, 10:12 pm
Arquivado em: AS 3.0, Papervision 3D

Bom, aqui vai um exemplo simples de como pegar eventos em objetos 3D (papervision), por exemplo clicar num cubo…

1º crie um AS chamado testando_papervision.as, e cole o seguinte codigo:package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.objects.Cube;
import org.papervision3d.scenes.MovieScene3D;
public class testando_papervision extends Sprite
{
public function testando_papervision()
{
var rodando = false;
var cont:Sprite = new Sprite();
cont.x = stage.stageWidth * 0.5;
cont.y = stage.stageHeight * 0.5;
addChild(cont);
//
var cena:MovieScene3D = new MovieScene3D(cont);
//
var cam:Camera3D = new Camera3D();
cam.z = -500;
cam.zoom = 5;
//
var mat:BitmapFileMaterial = new BitmapFileMaterial("porquinho1.jpg");
mat.doubleSided = true;
mat.smooth = true;
var cubo:Cube = new Cube(mat,128,128,128);
cena.addChild(cubo);
cubo.container.addEventListener(MouseEvent.CLICK,roda);
function roda(e:MouseEvent):void
{
if(rodando == false){
rodando = true
}else{
rodando = false
}
}
this.addEventListener(Event.ENTER_FRAME,renderiza)
function renderiza(e:Event):void
{
if(rodando == true){
cubo.rotationY +=5
}
cena.renderCamera(cam);
}
}
}
}

Depois crie um Fla vazio e em propriedades , Document Class, escreva: testando_papervision

coloque uma imagem com o nome de porquinho1.jpg com 128px por 128px na mesma pasta

salve tudo e compile o flash.

Quando você clicar no cubo, se ele estiver parado ele vai começar a rodar, e se ele estiver rodando vai parar.

Até a próxima, qualquer duvida comentem.