Curso AS3

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.

6 Responses to “Flash CS4, Classe Matrix3D”

  1. Diego Says:

    Cara muito legal o seu post. Fiquei muito interesando nessa nova tecnologia, da asas pra imaginação mesmo.

  2. Flash CS4, eFlash3D Cube com suporte a materiais - Erick Souza Says:

    [...] 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 [...]

  3. Celso Says:

    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?

  4. Erick Souza Says:

    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. =)

  5. André D´Angelo Says:

    Show de Bola Erick!!!

    Eu estava tentando mudar diretamente o .z hahha, mc.z +=1 por ex, e não estava conseguindo!

    Vlw!

  6. André D´Angelo Says:

    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!

Leave a Reply