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
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
Então! Chega de papo furado, e vamos a um exemplo BEM SIMPLES! Ridiculamente Simples, de ser feito!
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(); } } }
É isso ai, até a proxima, prometo trazer algo mais aplicável e interessante!
Tags: 3D, Actionscript 3, Away 3D, engines, Papervision 3D, Tutorial













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????