Arquivado em: AIR, AS 3.0, Flash geral, Flex, Papervision 3D | Tags: flash, as3, Actionscript, Flex, 3d, papervision, away 3D
Olá, eu estava procurando algumas outras engines 3d para Actionscript, foi então que eu encontrei o Away3D( http://away3d.com/ ) que aparentemente parece ser melhor do que o papervision para coisas mais completas.
Se alguem testar os dois coloque a sua opnião aqui.
eu escolho o Away3D
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.