por Guilherme Moschen em 24/07/2007 as 00:08
Acredito que não tenha sido muito convincente no post anterior sobre o que é capaz de se fazer com esse nosso novo amigo chamado Papervision3D. Pra ser um pouco mais claro, eu fiz um pequeno exemplo pra demonstrar um pouco mais essa tecnologia.
A idéia é bem simples, um cubo girando com o logo da CubaGames como textura do cubo. Vamos ao código.
Actionscript:
-
public class Main extends Sprite{
-
-
var container:Sprite;
-
-
var cena:Scene3D;
-
-
var cubo:Cube;
-
-
var camera:Camera3D;
-
-
public function Main() {
-
this.carrega3D();
-
-
// Para cada entrada de frame, o metodo loop3D sera chamado
-
this.addEventListener( Event.ENTER_FRAME, this.loop3D );
-
}
-
-
// Método que carrega todos objetos 3D
-
private function carrega3D():void {
-
-
// Cria um container de Sprite e centraliza na tela
-
this.container = new Sprite();
-
this.addChild( container );
-
this.container.x = 150;
-
this.container.y = 150;
-
-
// Cria a cena 3D do Papervision
-
this.cena = new Scene3D( this.container );
-
-
// Cria a camera
-
this.camera = new Camera3D();
-
this.camera.z = 100;
-
-
// Cria a textura para o Cubo
-
var texturaCubo:BitmapAssetMaterial =
-
new BitmapAssetMaterial("LogoCubaGames");
-
-
// O Logo CubaGames é um gif importado para o arquivo .fla
-
// Nas propriedades da figura é setado o seu ID como CubaGames
-
// Cria o Cubo
-
this.cubo = new Cube(
-
texturaCubo, // textura do objeto 3D
-
100, // largura
-
100, // profundidade
-
123); // altura
-
-
// Adiciona o cubo na cena
-
this.cena.addChild(cubo);
-
}
-
-
public function loop3D( event:Event ):void {
-
// Gira o Cubo verticalmente
-
this.cubo.yaw(Math.PI / 4);
-
-
// renderiza a camera na cena
-
this.cena.renderCamera( this.camera );
-
}
-
}
Eu realmente gostei dessa nova forma de fazer animações em Flash e sim, AS3!
O exemplo pode ser visto aqui e ser baixado aqui.
Aquele abraço!
Categorias: Flash - ActionScript, Papervision3D |