ILVA RUDEV (90 pts)

GABRIEL SPORCH (53 pts)

MAURO ROCHA TAVARES (40 pts)

HELEN TRIOLO (444 pts)

GUILHERME G.G. (137 pts)

RODRIGO AMARAL (56 pts)

JOTA LAGO (40 pts)

SASHA GUDEY (235 pts)

MARCELO SIQUEIRA (96 pts)

LEANDRO AMANO (83 pts)

NETO LEAL (116 pts)

AUTOR DESCONHECIDO (100 pts)
Treinamento PontoFlash de Flash e ActionScript

Preciso de um botão que ao clicar feche um filme que funcione numa página HTML.

Existe uma função Replace no Flash, para substituir Strings?

Como verificar se um campo de formulário não foi preenchido?

Algumas dicas sobre o operador Modulo (%).

Qual a maneira de colocarmos uma figura (gif) como plano de fundo em um fla?

Preciso configurar a formatação de um arquivo .TXT importado com load variables.

Como checar o preenchimento de um campo de texto?

Diz aí, como faço para projetar uma página full screen?

Como eu faço para que cada vez que um movieclip for acionado por tell target, some 1 à uma variável, e que quando essa variável atingir o valor 7 chame uma nova scene?

Eu quero fazer um degradê de uma cor opaca para uma transparente.

Como eu posso simular um sorteio de dados?

Porque o Flash não reconhece casas decimais e vírgulas numa operação matemática?

Estou precisando de scripts em CGI.

Como rolar umas imagens na horizontal, de maneira que elas se repitam continuadamente?
Looping.

3D Wireframe.

Níveis dentro do Flash - Load Movie e Load Variables (terceira parte)

Enquete interagindo Flash MX 2004 + PHP + MySql

Conceitos de Design - Apresentação.

Variáveis de arquivos de texto.

O desenho animado abrindo sites.

Menu dinâmico a partir de um xml.

Pre-loader simples.

Como enevoar as bordas de uma imagem no Fireworks.

Jogo de colorir.

Preloader real no Flash5.
Abrir popup

Scroll text2

Mapa do brasil

News

Sistema de notícias Flash+PHP

TV static

Cleopalyer

Break_text

Texto html

3d cube2

Colorpicker

Espelho
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