Curso AS3

Flash CS4, Flash3D Cube com suporte a materiais

Adicionei suporte a materiais no objeto Cube, são classes para estudo.

As novidades são as seguintes:

Foi reformulado a forma de iniciar o objeto Cube para ficar mais simples.

This movie requires Flash Player 8.

import com.esouza.Flash3D.object.*;
 
//inicia o objeto Cube
var c:Cube = new Cube();
//desenha o objeto Cube, o método drawCube3D() retorna uma
//referência do container Sprite do Cubo, armazenei está referência
//em uma variável para poder manipula-lo, ex. scube.alpha = .5;
var scube:Sprite = c.drawCube();
//adiciona o cubo no palco
addChild(scube);
 
//posiciona o cubo no centro do palco
scube.x = stage.stageWidth/2;
scube.y = stage.stageHeight/2;

Aplicar cores individualmente para cada face do cubo.

This movie requires Flash Player 8.

//setar o material antes do método drawCube()
//os nomes das faces são, top, bottom, front, back, left e right,
//não é necessário setar todos os lados, as faces não setadas receberão
//a cor da constante BGCOLOR 0x000000, para alterar a cor use c.bgcolor = 0xff0000;
c.material = {top: 0xFF0000,
				bottom: 0x00FF00,
				front: 0x0000FF,
				back: 0x00FFFF,
				left: 0xFFFF00,
				right: 0xFF00FF}

Aplicar a mesma cor para todos as faces.

c.material = {all: 0xff0000};
//ou
c.bgcolor = 0xff0000;

Aplicar imagens individualmente para cada faces.

This movie requires Flash Player 8.

//belf é o linkage da imagem na biblioteca
//o linkage de uma imagem na biblioteca recebe
//a classe base BitmapData, por isto é necessário passar o width e height
var be:belf = new belf(100, 100);
 
//para setar o material no objeto segue
//a mesma forma utilizada para cores
//lembrando de setar o material antes do método drawCube()
c.material = {top: be,
				bottom: be,
				front: be,
				back: be,
				left: be,
				right: be};

A mesma imagem para todas as faces.

var be:belf = new belf(100, 100);
c.material = {all: 0xff0000};

Aplicar MovieClips individualmente para cada face (o movieclip pode conter tudo que ele é capaz de armazenar, como vídeos, componentes do Flash, etc.

This movie requires Flash Player 8.

//passe o nome do linkage do mc na biblioteca
c.material = {top: mctop,
				bottom: mcbottom,
				front: mcfront,
				back: mcback,
				left: mcleft,
				right: mcright};

O mesmo MovieClip para todas as faces.

c.material = {all: mctop};

Os três tipos de materiais no mesmo cubo.

//top : movieclip mctop
//front : imagem belf
//back : cor amarelo 0xFFFF00
var be:belf = new belf(100, 100);
c.material = {top: mctop,
				front: be,
				back: 0xFFFF00};

Propriedades do objeto Cube úteis.

//define o tamanho do cubo
c.size = 150;
//as imagens e movieclips que não tem a mesma largura e altura serão
//esticadas, para manter a proporção sete a propriedade keepRatio para true
c.keepRatio = true;
//a cor do background do cubo é por padrão preto, esta  propriedade será útil
//para aplicar a mesma cor para todas as faces e no caso da propriedade keepRatio estar setada para true
//a área que o movieclip ou imagem não preencher receberá a cor da propriedade bgcolor
c.bgcolor = 0xff0000;

O método doRotation() rotaciona o cubo nos eixos X e Y, pode ser usado para rotação animada.

c.doRotation({degreeX: 45, degreeY: 45});

Pode-se rotacionar apenas um eixo.

c.doRotation({degreeX: 45});

Exemplo de animação.

stage.addEventListener(Event.ENTER_FRAME, onRotation);
 
function onRotation(evt:Event):void
{
	//c.doRotation({degreeX: ((-stage.stageWidth/2)+this.mouseX)*0.03});
	//c.doRotation({degreeY: ((-stage.stageHeight/2)+this.mouseY)*0.03});
	c.doRotation({degreeX: ((-stage.stageWidth/2)+this.mouseX)*0.03, degreeY: ((-stage.stageHeight/2)+this.mouseY)*0.03});
}

[update]As classes podem ser conferidas em um outro post.[/update]

Pretendo adicionar mais alguns recursos como carregamento de imagens externas, width e heigh diferentes, permitir animações utilizando engines de animação.

7 Responses to “Flash CS4, Flash3D Cube com suporte a materiais”

  1. Diego Says:

    Cara, muito bom esse post. muito interesante mesmo.
    Valeus.

  2. Erick Souza Says:

    Valeu Diego. =)

  3. Elvis Says:

    Amigo vlw mesmo.

    Embora não tenha entendido muito bem pois sou iniciante no flash gostaria de fazer um pedido, estou prescisando fazer o mundo em 3d girando e quando colocar o mouse em cima ele parar de girar e apresentar os links, se puder me explicar agradeço!
    vlw

  4. Dusty Berkich Says:

    Excellent material - Many thanks for publishing that info, I suspect that it basically answers my question.

  5. adailton Says:

    5007: An ActionScript file must have at least one externally visible definition. cara voce usa algum tipo de biblioteca? aqui nao deu nao ficou na linha 1.

  6. Fred Vianna Says:

    Tá …
    Mas como tornar as faces clicáveis e cm adicionar links ?

    Como fazer isso com um icosaedro, por exemplo, e outros
    q não são cubos ?????

    Abs … Fred

  7. Pearl Says:

    Undeniably believe that which you said. Your favorite reason seemed to be on the internet the simplest thing to be aware of. I say to you, I certainly get irked while people think about worries that they plainly do not know about. You managed to hit the nail upon the top as well as defined out the whole thing without having side-effects , people can take a signal. Will probably be back to get more. Thanks

Leave a Reply