RÔMULO NUNES (32 pts)

DAAFY (55 pts)

LUIZ HERRERA (117 pts)

ZECA BALA (45 pts)

GABRIEL SPORCH (53 pts)

RODRIGO AMARAL (56 pts)

MARCOS JOSÉ PINTO (44 pts)

SASHA GUDEY (235 pts)

ALEXANDRE PORTO (1281 pts)

LUI FERNANDO (151 pts)

RICARDO TAKAHASHI (180 pts)

GUILHERME G.G. (137 pts)
Treinamento PontoFlash de Flash e ActionScript

Queria fazer um sistema de busca.

Como eu faço no flash para um logo girar como se fosse um 360º só que na horizonal?

Como arrastar (drag) uma palavra e colar ela num determinado ponto?

Como movimentar um movieclip no palco ao comando de botões acionados por eventos na TimeLine?

Como faço para movimentar na horizontal um menu na direção oposta ao mouse?

Como abrir uma janela pop-up tamanho fullscreen?

Quando e para que usar function (função), var, length e o objeto "arguments"?

Como coloco um cronômetro no flash?

Como fazer para mudar as cores da barra de rolagem lateral?

Como faço para alternar movieclips invisíveis e na mesma hora começar a rodar.

Como fazer uma timeline andar mais lenta que outra?

Alguém conhece alguma maneira de mostrar dentro do flash uma imagem que está em outro provedor?

Como posso enviar e-mail através de um formulário feito no flash sem ser pelo formmail.pl?

Como fazer um executável no Flash com autorun?
Máscara com gradiente.

Busca em Textos no Flash MX

Como criar um site totalmente dinâmico em Flash MX

Quadro comparativo: Fireworks ou Photoshop

Botão dinâmico via Action Script.

Controlando MovieClip pelas teclas direcionais.

Carregando SWFs em diferentes níveis.

Desenhando uma linha entre dois pontos no Flash 5.

HACKED - ANONYMOUS

Exibir páginas em ASP com o componente TexArea do FlashMX2004

Compartilhando fontes

Integrando o Flash com Tecnologias Externas.
Foto com balão

Eyes

Motionblur

Barneys menu

Filtro de cores

Sombras

Quebra Cabeças

Cofre mask

Drag limitado

Volume mixer

F5scrolltext

Tint rgb
HOME | TUTORIAIS
3D Wireframe.
por Helen Triolo

(Nota: Para impedir o filme seja redesenhado a cada quadro e devorar assim todo o poder do seu processador, clique no botão de reset - isto fará com que o objeto volte para sua posição não girada e interromperá o re-desenho até queseja pressionado a tecla render ou um dos botões de rotação).

Classes para suportar desenho em 3D

Há algumas semanas atrás, dei uma olhada no artigo de Chad Corbin sobre como criar objetos 3D em tempo real em Flash, um exemplo atrativo para mim porque mostra como criar e fazer girar uma outra coisa além de um cubo. Cubos em 3D girando são legais em seu movimento, mas sempre considerei que seria mais interessante saber como criar alguma coisa curva e então ter esta coisa curva se movendo também. Desde que uma forma pode ser tão perfeitamente definida (como uma série de curvas bezier quadráticas e/ou segmentos de linha) e produzidas no Flash, pensei em como seria maravilhoso permitir ao usuário definir sua própria forma (uma série de curvas) e então estender esta forma para fazer um objeto em 3D completo, ou por extrusão, ou pela criação de um objeto radialmente simétrico (esta amostra é um simples exemplo desse último).

Assim, da maneira usual, despendi alguns dias desmembrando o código do Chad para descobrir o que ele fazia e então outros poucos dias recolocando-o de volta dentro de alguma coisa útil que eu pudesse usar genericamente em futuros projetos. No processo, coloquei alguns métodos de classe Math juntos para criar e manipular uma matriz transformadora, para encontrar um ponto ao longo de uma curva bezier, e executar multiplicações matriz-matriz e matriz-vetor (necessárias para projetar definições 3D em um espaço 2D).

Para configurar a cena

A classe controladora neste exemplo é Scene, que inclui propriedades para definir a linha de tempo na qual a cena será criada, um conjunto de formas que contêm movieclips de forma individualizada, e um fator de perspectiva. Após desenhar a forma padrão, a primeira coisa a ser feita no filme é definir um objeto Scene com esta instrução:

var wireFrame = new Scene(this.mcShow, 300, false, 17);

Isto cria um objeto chamado wireFrame do tipo Scene que irá residir na linha de tempo mcShow, tendo fator de perspectiva 300, sem eixos mostrados e que contém 17 formas. Cada uma dessas formas será representada por um movieclip, cuja referência é armazenada no conjunto aShapes (uma propriedade do objeto Scene). Estas formas incluem a forma curva original (definida pelo usuário, ou utilizando a forma padrão) situadas horizontalmente no plano xy, mais 7 duplicatas dela, dispostas à volta do eixo y em ângulos de 45 graus, mais 9 círculos horizontais ao longo do comprimento da figura.

Para definir a forma

Cada forma é definida por 4 pontos de ancoragem (pontos finais, mostrados como pontos no filme acima) e 3 pontos de controle (triângulos), todos os quais podem ser arrastados, dentro de certas limitações, pelo usuário. Para converter a forma selecionada pelo usuário em um objeto utilizável em Flash, empreguei uma estrutura usada para objetos 2D, que nada mais é do que um objeto com estas propriedades:

ptStart: um ponto 3d (com propriedades x, y, z) que mostra onde a forma começa

aCurves: um conjunto de objetos com propriedades p e c. Cada objeto no conjunto define uma curva, ou uma curva atual (com um ponto de controle) ou um segmento de linha (neste caso o ponto de controle é nulo). p é o 3º ponto final da curva, e c é o 3º ponto de controle se a curva tiver um.

isClosed: um valor booleano que diz se a curva é fechada ou não. Se fechada, um preenchimento será aplicado. Se aberta, a curva não terá preenchimento.

lineweight: espessura da linha (em pixels)

linecolour: cor da linha, se você for Britânico (Deixei os nomes das variáveis como os da amostra do Chad)

linealpha: transparência da linha

fillcolour: cor de preenchimento (não utilizada neste exemplo)

fillalpha: transparência do preenchimento

No filme, a curva que define a forma do objeto 3d é definida no movieclip mcDraw, e o objeto 3D wireframe é então criado no movieclip mcShow. Quando uma forma tiver sido definida e o usuário clicar Render, a função makeFrame é chamada. makeFrame traduz os pontos especificados no mcDraw em pontos utilizáveis dentro do mcShow, com instruções como:

var p0x = mcDraw.p0._x - mcDraw.p3._x;
var p0y = mcDraw.p0._y - offset;
var p1x = mcDraw.p1._x - mcDraw.p3._x;
var p1y = mcDraw.p1._y - offset;
...

var c1x = mcDraw.c1._x - mcDraw.p3._x;
var c1y = mcDraw.c1._y - offset;

onde p0x/p0y define o ponto de partida (no plano xy), p1x/p1y define o ponto final da primeira curva na forma, e c1x/c1y define o ponto de controle da primeira curva. Quando estes pontos foram estabelecidos, o método setShapeProps do wireFrame (um objeto do tipo Scene) é chamado. Isto passa todas as propriedades da forma (ponto de partida, conjunto de definições de curva, espessura da linha, etc) para o movieclip que as representarão (salvas em wireFrame.aShapes[0]):

// faz as linhas verticais: #1 position at z=0
wireFrame.setShapeProps(0, {x:p0x, y:p0y, z:0},
                    [ new Curve( {x:p1x, y:p1y, z:0}, {x:c1x, y:c1y, z:0} ),

                    new Curve( {x:p2x, y:p2y, z:0}, {x:c2x, y:c2y, z:0} ),
                    new Curve( {x:0, y:p3y, z:0}, {x:c3x, y:c3y, z:0} ) ],
                    false, 1, 0xffffff, 100, 0, 0);

Uma curva é um objeto da classe Curve, definido por dois pontos: o ponto final da curva, e seu ponto de controle. A instrução acima configura a primeira forma na cena (index=0) para iniciar a um ponto definido por p0x/p0y/0, então curve para um ponto em p1x/p1y/0 usando c1x/c1y/0 como controle, então curve para o ponto p2x/p2y/0 usando c2x/c2y/0 como controle, etc. O parâmetro "false" especifica que a curva não é fechada (e então nenhum preenchimento será aplicado), e os parâmetros remanescentes definem a linha (branca, amplitude do pixel 1, alfa -transparência- 100) e preenchimento (nenhum, mas colocamos cor e transparência de qualquer modo para mostrar onde um preenchimento deverá entrar).

Para duplicar a forma (segunda parte)

Tradução:
Sérgio Ramalho



Devido à reformulação implementada no site, pode ser que você encontre alguns links quebrados. Por favor, ajude-nos a corrigir eventuais problemas nos informando links quebrados
0 comentário