Flash CS4, Classe Matrix3D
October 9th, 2008Para 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.



