SÁVIO PONTE (39 pts)

DENIS CARAVALHO (85 pts)

FLASHGURU (155 pts)

JOTA LAGO (40 pts)

DANIELA PIRES (86 pts)

MARCELO SIQUEIRA (96 pts)

EDUARDO PERROUD (52 pts)

FÁBIO DUARTE (79 pts)

MARCOS JOSÉ PINTO (44 pts)

JOÃO NETO (78 pts)

RICARDO FIGUEIRA (33 pts)

DAUTON JANOTA (255 pts)
Treinamento PontoFlash de Flash e ActionScript

Tem como fazer uma barra de rolagem (scroll bar) colorida?

Funções que geram efeitos especiais no Browser.

Quero fazer um objeto ser arrastado e que quando soltado (stopDrag) caia suavemente.

Como checar o preenchimento de um campo de texto?

Importei um .MOV pro flash, só que quando testo, o vídeo não começa.

Como colocar uma página em FullScreen?

Como transformar uma animação em um movie clip?

Gostaria de saber se existem plugins para flash.

Como desabilitar botões do Level0, quando abro um arquivo no level1?

Como eu faço um carregando bem simples no flash5?

Consegui usar o XML com ASP, mas ainda não consegui colocar no flash.

Como defino uma pausa (delay) em meu filme?

Como eu poderia substituir um caractere ao longo de uma string?

Preciso que um movieclip se repita de tempos em tempos.
Adicionar ao favoritos

Uma enquete usando ASP e Flash.

Funções SetInterval e clearInterval no FlashMX.

Sistema de newsletter utilizando Flash + ASP

Parâmetro - Get camera().

Imagens transparentes usando PhotoShop, Fireworks e Flash.

Separar mensagens das listas das pessoais, usando o Outlook

Conceitos de Design - Apresentação.

Interação de Flash+Asp.

Quadro comparativo: Fireworks ou Photoshop

Conversão de Datas e Horas em Servers Estrangeiros (Flash+Asp).

Uso da tecla tab num formulário Flash.
F5 Scroll

Text lights 2

Duplication

Céu estrelado

Pacman

Planeta girando

Dynamic

Busca texto

Click determiner

Code Elastic

Tornado

Caçada
HOME | TUTORIAIS
Elasticidade com ActionScript.
por Bill Tagliaferro

Esse tutorial pretende oferecer um conhecimento prático sobre matemática da elasticidade em actionscript, o que produz efeitos de elasticidade sob determinadas condições, de um "wiggle" gelatinoso a movimentos de mola. A matemática é baseada na Lei de Hooke e pode ser encontrada em quase todos os livros de física.

   Esse tutorial se destina a usuários de Flash 5 em qualquer nível: iniciante, intermediário e avançado.

Resumo:

Movimento de mola e elásticos podem ser muito atraentes, dando aos objetos respostas e movimentos que parecem com os de um ser vivo. O problema da maior parte das pessoas parece ser um conhecimento prático dos princípios matemáticos. Os três termos fundamentais com os quais você precisa se familiarizar são: posição (p), velocidade (v) e aceleração (a).

   Todos esses três conceitos fazem parte do movimento elástico. Você provavelmente já está familiarizado com o fato de que uma mola responde a uma força (puxando ou empurrando, por exemplo). Quanto mais força é aplicada à mola, maior a reação decorrente. Essa é a base do movimento de mola e é conhecido como Lei de Hooke.

   A força com que a mola responde é determinada pelo que é conhecido como "Constante de Mola (k)". Além disso, num ambiente sem atrito a mola continuaria oscilando para sempre, uma vez que fosse solta, então outro termo é introduzido (c), para "damp" o movimento e gradualmente fazê-lo parar. Numa fórmula matemática, eis o que temos:

- k(P - Po) = Um termo cuja força (aceleração) é proporcional ao deslocamento da mola.
cV = Um termo cuja força (aceleração) é proporcional à velocidade para damp o movimento.

A = -k*(P - Po) + c*V

Onde:

Po é a condição inicial, como a posição inicial na tela ou a escala inicial ou tamanho do objeto.
k é a constante de mola
c é a constante de damping

   Nessa equação você vai ver que ambos os termos produzem uma aceleração. A aceleração vai mudar a velocidade de um objeto na medida em que a velocidade modificar sua posição. Então a situação é a seguinte: quando mudamos a posição do objeto, a partir de sua posição inicial, uma aceleração é produzida, a qual, por sua vez, produz uma velocidade, que muda a posição do objeto de forma a que ele retorne à posição inicial.

   No entanto, não há nada para parar o objeto quando ele chega à sua posição inicial e por isso ele continua se movendo (overshoots). Novamente, a mola vai produzir uma aceleração que tenta fazer o objeto retornar à sua posição inicial e assim, se não houver damping, o objeto continua a oscilar em torno de sua posição inicial. Essa posição inicial pode ser sua localização na tela, seu tamanho, sua escala, seu alpha etc.

   A equação de posição, velocidade e aceleração é:

A = -k * (P. atual - P. inicial)
V. atual = c * V. final + A
P. atual = P. final + V. atual


A forma de transmitir esse movimeto a um Movie Clip (MC), segundo o exemplo acima é:

onClipEvent (enterFrame) {
dx = _xscale-xo; // Movimento inicial da mola na direção X
dy = _yscale-yo; // Movimento inicial da mola na direção Y
ax = -k*dx; // Produz a aceleração em X
ay = -k*dy; // Produz a aceleração em Y
vx = vx*c+ax; // Produz a velocidade em X
vy = vy*c+ay; // Produz a velocidade em y
_xscale += vx; // Move o objeto de volta à sua posição inicial X
_yscale += vy; // Move o objeto de volta à sua posição inicial X
}


As condições iniciais e os valores da mola devem ser definidos assim:

onClipEvent (load) {
k = 0.8;
c = 0.6;
xo = 100;
yo = 100;
}

 

Passo-a-passo do exemplo acima.

Definindo Condições Iniciais

a) Valores de mola.

Os valores de mola podem ser definidos com MCs individuais ou como variáveis globais que todos os MCs poderão acessar. As condições iniciais do objeto, por outro lado, usualmente são associadas a um MC específico. Vamos definir como globais nossos valores de mola, de forma a que todos os nossos MCs possam usá-los.
No primeiro frame do seu filme inicial os valores de mola são:

// Constante de mola
k = 0.8;
// Constante de damping
c = 0.4;


b) Valores de objeto.

Valores de objeto ou condições iniciais são geralmente definidas no MovieClip com um comando "onClipEvent (load)". Isso vai fazer com que esses valores sejam inicializados no ponto em que o MC for carregado. Essa ação ocorre apenas uma vez. Nesse exemplo, vamos fazer com que o objeto volte à sua posição inicial no palco.

   Coloque qualquer MC no palco e acrescente esse código à suas ações (lembre-se: isso NÃO entra no primeiro frame do clip. São ações do clip em si):

onClipEvent (load) {
// Defina a posição inicial como a localização do objeto no palco
xo = this._x;
yo = this._y;
}


c) Definindo equações de movimento

Uma aceleração produz mudanças na velocidade. A velocidade produz mudanças na posição. Essa seqüência é a base das equações de movimento. A aceleração vem do é o produto da constante de mola (k) vezes o deslocamento inicial da mola. A velocidade é a soma da aceleração e dos efeitos de "damping". Como afirmamos anteriormente, isso fica assim no action script:

onClipEvent (enterFrame) {
dx = this._x - xo; // Deslocamento inicial da mola na direção X
dy = this._y - yo; // Deslocamento inicial da mola na direção Y
ax = - k * dx; // Produz a aceleração em X
ay = - k * dy; // Produz a aceleração em Y
vx = c * vx + ax; // Produz a velocidade em X
vy = c * vy + ay; // Produz a velocidade em Y
this._x = this._x + vx; // Move o objeto de volta à sua posição inicial X
this._y = this._y + vy; // Move o objeto de volta à sua posição inicial Y
}


   No exemplo acima, a mola é presa ao objeto e a algum ponto da tela (condições iniciais). Nesse efeito "slinky" a mola é presa a dois objetos. A mola 1 fica entre o objeto 1 e o objeto 2 e assim por diante. Quando essa técnica é utilizada, a posição, velocidade e aceleração de cada MC devem ser armazenadas. O nome de cada MC deve ser conhecido, então geralmente um número é adicionado ao fim do nome, de forma que o MC possa ser facilmente referido num loop.

Esse loop define a posição inicial de cada MC (chamados C1, C2 etc), começa a arrastar em C0 e define os valores de mola e o espaço entre as letras.

i = 0;
k = 0.20;
c = 0.5;
offset = 5;
while (i<=15) {
set ("/C"+i+":xval", getProperty ("/C"+i,_x));
set ("/C"+i+":yval", getProperty ("/C"+i,_y));
vx = 0;
vy = 0;
i++;
}
startDrag ("/C0", true);


A aceleração nesse caso é baseada na separação entre os dois MCs.

i = 1;
while (i<=15) {
// Componente-X
px1 = eval("/C"+i+":xval");
px0 = eval("/C"+ (i-1) + ":xval") ;
vx0 = eval("/C" + i + ":vx");
ax = vx0 - k * (px1-px0);
vx1 = c * ax;
set ("/C" + i + ":vx", vx1);

// Componente-Y
py1 = eval("/C" + i + ":yval");
py0 = eval("/C" + (i-1) + ":yval");
vy0 = eval("/C" + i + ":vy");
ay = vy0 - k * (py1-py0);
vy1 = c * ay;
set ("/C" + i + ":vy", vy1);

// Posição Compute
set ("/C" + i + ":xval", eval("/C" + i + ":xval") + eval("/C" + i + ":vx") + offset);
set ("/C" + i + ":yval", eval("/C" + i + ":yval") + eval("/C" + i + ":vy"));
i++;
}
// Define todas as posições
set ("/C0:xval", getProperty("/C0", _x));
set ("/C0:yval", getProperty("/C0", _y));
i = 1;
while (i<=15) {
setProperty ("/C" + i, _x, eval("/C" + i + ":xval"));
setProperty ("/C" + i, _y, eval("/C" + i +":yval"));
i++;
}

Faça um download do arquivo fonte e estude-o cuidadosamente.



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