Flash CS4, Classe Matrix3D
Para compensar a falta de posts, este mês vou tentar escrever com frequência sobre as novidades do Flash CS4 na programação.
Para poder ver exemplos de posts como este você vai precisar instalar o Flash Player 10.
Neste primeiro post vou começar com uma das novidades que mais me animou, a possibilidade de criação de animações em 3D nativamente.
O exemplo abaixo usa o método prependRotation da classe Matrix3D para rotacionar um movieclip.
package { import flash.display.MovieClip; import flash.geom.*; import flash.events.MouseEvent; public class matrix3DRotation extends MovieClip { //objecto mcball, classe associada ao mc na biblioteca private var goku:mcball; public function matrix3DRotation():void { //cria um novo objeto mcball e adiciona no palco this.goku = new mcball(); addChild(this.goku); //setar as poições x, y e o novo eixo z this.goku.x = stage.stageWidth/2; this.goku.y = stage.stageHeight/2; this.goku.z = 1; //evento para atualizar a rotação do mc de acordo com o mouse stage.addEventListener(MouseEvent.MOUSE_MOVE, upRotation); } private function upRotation(evt:MouseEvent):void { //o método prependRotation da classe matrix3D é o responsável por rotacionar o objeto //os parâmetros aplicados são graus e eixo de rotação //o eixo é setado através de contantes da classe Vector3D, //por exemplo, a constante Vector3D.X_AXIS corresponde ao eixo X this.goku.transform.matrix3D.prependRotation(this.mouseX/60, Vector3D.X_AXIS); this.goku.transform.matrix3D.prependRotation(this.mouseY/60, Vector3D.Y_AXIS); } } }
Abaixo o exemplo rodando, mova o mouse sobre o filme para rotacionar o mc.
This movie requires Flash Player 8.




October 10th, 2008 at 9:01
Cara muito legal o seu post. Fiquei muito interesando nessa nova tecnologia, da asas pra imaginação mesmo.
October 12th, 2008 at 19:32
[...] comentei no post anterior sobre o framework 3D, eFlash3D, que estou desenvolvendo utilizando os novos recursos do Flash CS4, acabei a implementação de materiais (imagem, vídeo e movieclip) na classe do Cubo 3D. O [...]
October 21st, 2008 at 13:28
Cara, tentei executar aqui no flash cs4 mas não consegui simular o efeito acima.
Não entendi também a parte onde ele fala o seguinte:
private var goku:mcball;
o objeto mcball é uma outra classe?
October 21st, 2008 at 13:58
Oi Celso, o mcball é o “linkage” da imagem na biblioteca, a partir do AS3 o objeto é associado a uma classe, neste caso mcball, não precisa criá-la, o Flash cria na compilação. =)
December 1st, 2008 at 20:22
Show de Bola Erick!!!
Eu estava tentando mudar diretamente o .z hahha, mc.z +=1 por ex, e não estava conseguindo!
Vlw!
March 27th, 2009 at 9:39
Erick, há como ao largar o mouse, o objeto voltar (se movimentando com o rotation) para sua posição original? Porque eu tentei aqui, mas não achei o atributo do mc que o Rotation distorce, para fazer uma validação(if) que quando chegar em tal rotação por exemplo ele para.
Abçs!