Curso AS3

Flash3D update Sphere e Cube

Adicionei alguns recursos novos as classes. Em um post comentei sobre o drawTriangles, tanto a esfera 3D quanto o material puderam ser aplicados usando o drawTriangles.

Vi no filme de features do Flash Player um dvd box, achei legal para demonstrar o suporte implementado de depth no objeto Cube.

CUBE 3D

This movie requires Flash Player 8.

SPHERE 3D

This movie requires Flash Player 8.

Cube
- Suporte a material externo.
- Suporte a largura, altura e profundidade independentes.
- Suporte a animação usando engines de animação como o Tweener.

Sphere
- Implementado a construção de Sphere 3D.
- Suporte a material.
- Suporte a animação usando engines de animação como o Tweener.

A principal diferença entre os métodos é que o preprendRotation rotaciona com graus absolutos, enquanto o appendRotation rotaciona por incremento.

O appendRotation é usado para rotacionar o cubo por ele ser composto, e desta forma não é possível aplicar rotação absoluta, eu não posso por exemplo aplicar a rotação 0, 0; o que resultaria em um reset, pois o mesmo trabalha por incremento, mas não é um problema, é possível solucionar esta questão facilmente.

Logo abaixo um resumo das mudanças e novos recursos do Cube.

Método Construtor.

new Cube(_m:Object = null, _w:Number = 200, _h:Number = 200, _d:Number = 200):void

Iniciando um Cubo.

var dvd:Cube = new Cube({top: 0xFF0000,
				bottom: 0x00FF00,
				front: 0x0000FF,
				back: 0x00FFFF,
				left: 0xFFFF00,
				right: 0xFF00FF},
				240, 330, 24);
 
var mc:Sprite = dvd.drawCube();
addChild(mc);

Caso prefira, cada propriedade pode ser setada separadamente. Lembrando, os materiais suportados são: cores, bitmaps, movieclips e imagens externas (passe uma string com o caminho da imagem);

var dvd:Cube = new Cube();
dvd.material = {top: 0xFF0000, bottom: 0x00FF00, front: 0x0000FF, ack: 0x00FFFF, left: 0xFFFF00, ight: 0xFF00FF};
dvd.width = 240;
dvd.height = 330; 
dvd.depth = 24;
 
var mc:Sprite = dvd.drawCube();
addChild(mc);

Rotação:

dvd.rotationX = 45;
//ou usando uma engine de animação
Tweener.addTween(dvd, {rotationX: 45, time: 2});

Pode-se trocar também o material, não é tão boa quanto a da esfera, mas trabalha corretamente.

dvd.material = { material aqui ..};
dvd.update();

A espera é praticamente a mesma coisa.

var s:Sphere = new Sphere(new myImage(0, 0), 5);
var ssphere:Sprite = s.drawSphere();
addChild(ssphere);

[updadte]Coloquei no Google Code para download os exemplos e a nova versão da classe.[/updadte]

[updadte]As classes estão disponíveis em outro post.[/updadte]

12 Responses to “Flash3D update Sphere e Cube”

  1. Marcos_Paiva Says:

    Puts Erick, to acompanhando direto aqui os seus últimos posts, e achei demais essa iniciativa de dissecar o cs4, e ainda gostei tbm desse projeto eFlash3D, que no caso vai facilitar as coisas (que aliás me parecem que ficaram bem mais faceis nesse cs4).

    Bem sou membro do flash masters e abri um tópico sobre Engines 3D para flash, e acabei citando o seu blog e os seus experimentos qndo falei da classe Matrix3D. Tudo bem em “divulgar” o seu blog e no caso os seus labs?

    Link: http://flashmasters.net/index.php?option=com_smf&Itemid=2&topic=48267.0 , se tiver eu tiro numa boa.

    Flw velho, um abraço!

  2. Rafael Lima Says:

    Nossa, realmente um bom trabalho, parabéns!
    Espero que a engine continue a crescer.
    Boa sorte!

  3. Erick Souza Says:

    @Marcos obrigado! Qualquer apoio é apreciado =)

    @Rafael Obrigado, =D vai continuar sim, nos próximos updates a engine vai se aproximar mais do que quero.

  4. Rafael Says:

    Pô sempre as melhores novidades aqui hein….. show de bola, Parabéns mais uma vez…

    Erick será que os usuários logo irão atualizar seus flash players para o 10??? caso contrário a principio fica inviável nossos desenvolvimentos em 3d certo? ou não?

    parabéns.

  5. Erick Souza Says:

    Oi Rafael, obrigado. =)

    Em relação ao Flash Player vai ser muito tranquilo, uma simples atualização do Flash Player 9 para 9.0.115 no segundo mês ultrapassou 85%, isso porque era um atualização “insignificante”.. vamos ficar de olho, eu aposto em no máximo dezembro para o Flash Player 10 atingir a porcentagem acima de 90%.

  6. Lucas Marçal Says:

    Salve Erick

    Não consegui abrir o arquivo com o Flash Cs3, só abre no CS4 ?

    Abs!

  7. Erick Souza Says:

    Oi Lucas,

    Só no CS4 mesmo. =/

    Abs.

  8. Lucas Motta Says:

    Muito bom Erick!

    Bom, eu teria somente uma sugestao para dar.. Ao inves da funcao drawCube ou drawSphere, voce podia utilizar o mesmo nome para tal.. Usar por exemplo, somente o “draw”. Ou “build”, “init”, etc..
    Acho que fica um pouco mais usual.

  9. Marcelo Barbosa Says:

    Muito legal os tutos. Já tinha lido algo sobre o assunto mas estava sem tempo pra estudo.

    Só uma dúvida, funciona normal no flash, mas a hr q publico no html fica tudo zicado. Por que será?
    abras.

  10. Paulo Says:

    Muito bom man, Muito bom MESMO… Parabéns, estou conhecendo o projeto hoje, e fiquei muito feliz com isso… tenho nem o que dizer, magnifico, trabalho lindo que você esta fazendo viu… muito leve e bastante funcional. PARABÉNS!

  11. Paulo Says:

    Man testei ontem a classe e gostei bastante… só vi algumas coisas que não sei se foi de proposito… a versão 0.2 o doRotation e o size, não funfam… so na versão 0.15, e mesmo assim se você fizer o size maior do que o obj e originalmente ele da erro… mas você esta de parabens man, gostei bastante mesmo viu. continue assim, quem sabe não vira um papervision pt-br huEHuHEuhEUhE… mas e serio jaja se chega lá. hehe, brincadeiras a parte esta muito bacana man, dou toda a força para você continuar. abraço.

  12. Erick Souza Says:

    @Oi Lucas, valeu, fiz o que você sugeriu.

    @Paulo, obrigado hehe, mas a intenção é apenas para estudo. =)

Leave a Reply