Primeiros passos com 3D no FLASH!

Olá a todos! Bom, finalmente vou fazer um post simples e bem básico com 3D no flash, nesta época de tanta evidencia de Papervision, eu vou na contra mão é vou lançar um tutorial sobre o Away 3D! É a engine 3D de flash que mais tem me impressionado ultimamente, devido a otimização e facilidade de uso, infelizmente não posso fazer um bom comparativo entre as 2, porem acredito que ambas tem seus Prós e Contras, porem, resolvi fazer um post sobre a Away 3D após ver este site:

Away 3D site do Hellboy

Away 3D site do Hellboy


Não porque é em 3D muito bem feito, mais é utilizado de forma sensata, leve, e realmente muito facil de ser reproduzido! Ela ainda tem suporte a WOW Engine (engine de fisica para 3D)!

Existem vários exemplos ótimos de Away 3D, segue alguns exemplos, retirados do próprio site do Away 3D

Discovery Game

Square Enix

The Strangers

Cadbury Glass and a Half Full

Brahma Mobile

Brahma Mobile

Então! Chega de papo furado, e vamos a um exemplo BEM SIMPLES! Ridiculamente Simples, de ser feito!

(Either JavaScript is not active or you are using an old version of Adobe Flash Player. Please install the newest Flash Player.)

Ok! Sem tirar sarro! é que realmente queria algo bem simples, para mostrar a facilidade do mesmo!

Basicamente para um projeto em Away 3D, você vai precisar fazer o download da ultima versão, e jogar no seu Classpath, ou simplesmente deixar a mesma na pasta da sua aplicação, estou utilizando Flash Develop aqui, aconselho a todos que não gostem muito do editor de Actionscript do Flash, utilizarem o mesmo, é muito bom!

Crie seu Arquivo Flash Actionscript 3, defina o Document Class como Main, no flash Develop crie uma nova Classe como Main.as, jogue no mesmo diretório que o seu .fla.

O seu arquivo Main.as devera ser como o arquivo abaixo:

package
{
public class Main
{
public function Main()
{
}
}
}

Precisamos apenas extender a nossa classe para a mesma ser um Document Class, então alteramos para:

 public class Main extends Sprite

Feito isso nossa Document Class esta pronta para ser usada!

Basicamente para trabalher com o Away 3D vc precisa de um unico objeto, o View3D, então vamos criar um novo view 3D, centralizado no Stage:

private var view:View3D = new View3D( { x:(stage.stageWidth/2), y:(stage.stageHeight/2)} );

Agora precisamos de um Objeto 3D neste caso utilizei uma porem inicio a mesma como Object3D, pois sphere é uma extensão da classe Objeto 3D:

private var sphere:Object3D;

E no Construtor da nossa classe vamos iniciar e definir alguns padrões:

public function Main()
{
//Adicionando nosso view ao stage
addChild(view);
//criando um listener para o enterFrame para o mesmo rodar a engine
addEventListener(Event.ENTER_FRAME, run);
//Criando uma nova Sphere, passo para ela as cores do meu Wireframe, o raio, quantos poligonos verticais e horizontais, posições x,y e z
sphere = new Sphere( { material:"white#black", radius:100, segmentsW:12, segmentsH:9, y:0, x:0, z:10 } );
//Adiciono a minha esfera ao stage da minha visualização
view.scene.addChild(sphere);
//Mudo a posição da minha camera
view.camera.position = new Number3D(1000, 1000, 1000);
//Travo a minha camera para a mesma apontar para a sphere
view.camera.lookAt(sphere.position);
}

E no enterFrame rodamos nossa engine, e rodamos a esfera!

private function run(e:Event):void
{
sphere.rotationY += 1;
view.render();
}

E pronto, uma simples aplicação em 3D escrita com pouquíssimas linhas de código, para ser exato, de código real temos apenas 10 linhas de código!

Código Completo:

package
{
	import away3d.containers.*;
	import away3d.core.base.*;
	import away3d.primitives.*;
	import away3d.core.math.*;
	import flash.display.Sprite;
	import flash.display.Stage;
	import flash.events.Event;
 
	public class Main extends Sprite
	{
		private var view:View3D = new View3D( { x:(stage.stageWidth/2), y:(stage.stageHeight/2)} );
		private var sphere:Object3D;
		public function Main()
		{
			//Adicionando nosso view ao stage
			addChild(view);
			//criando um listener para o enterFrame para o mesmo rodar a engine
			addEventListener(Event.ENTER_FRAME, run);
			//Criando uma nova Sphere, passo para ela as cores do meu Wireframe, o raio, quantos poligonos verticais e horizontais, posições x,y e z
			sphere = new Sphere( { material:"white#black", radius:100, segmentsW:12, segmentsH:9, y:0, x:0, z:10 } );
			//Adiciono a minha esfera ao stage da minha visualização
			view.scene.addChild(sphere);
			//Mudo a posição da minha camera
			view.camera.position = new Number3D(1000, 1000, 1000);
			//Travo a minha camera para a mesma apontar para a sphere
			view.camera.lookAt(sphere.position);
		}
		private function run(e:Event):void
		{
			sphere.rotationY += 1;
			view.render();
		}
	}
}

Download do arquivo Fonte!

É isso ai, até a proxima, prometo trazer algo mais aplicável e interessante!

Share and Enjoy:
  • Digg
  • del.icio.us
  • Netvouz
  • description
  • ThisNext
  • MisterWong
  • Wists

Tags: , , , , ,

One Response to “Primeiros passos com 3D no FLASH!”

  1. Achei interessante o topico mais eu nao consegui fazer. Eu to começando no flash agora, baixei o away 3d mais nao entendi essa parte de flash develop e classpath, o meu é o 8 isso só dá certo no cs3????

Leave a Reply