ÉMERSON ROCHA (85 pts)

RÔMULO NUNES (32 pts)

PEDRO CLAUDIO (50 pts)

EDUARDO WALMOTT (226 pts)

MAURO ROCHA TAVARES (40 pts)

JOÃO NETO (78 pts)

DAAFY (55 pts)

SYDNEY GANHO (60 pts)

IRAPUAN MARTINEZ (45 pts)

RODRIGO AMARAL (56 pts)

DAUTON JANOTA (255 pts)

NETO LEAL (116 pts)
Treinamento PontoFlash de Flash e ActionScript

Como mover um objeto (nave) com as setas do teclado?

Como redimensionar um objeto até parar em um determinado tamanho?

Função javascript para voltar há uma página anterior a atual.

Como mudar a cor de um botão no mouse Over?

Como faço para um moviclip mostrar as coordenadas do mouse e para que um movieclip movimente-se de acordo com o mouse, mas no sentido contrário.

Como identificar o ponto de registro em um objeto criado por actionscript no MX?

Estou precisando de um preloader (carregando) para o meu site.

Tô tentado abrir uma janela popup com um comando dentro de um arquivo de texto chamado via loadVariables.

Como fazemos um objeto andar para frente e para trás por meio de um botão (roll over e roll out).

Quero colocar as propriedades _xmouse e _ymouse em só um campo dinâmico.

Preciso de um formulário em asp que sirva para buscar dados em um banco de dados.

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

Como importar uma animação feita no Flax?

Como faço um cursor customizado apenas em uma determinada área do site?
Componente Slideshow

Janelas pop-up e semi-full no flash

Programando objetos 3D em Plataformas 2D como a do Flash

Scroll - Rolagem de textos e Imagens

Gradiente variável

Tell Target e Linhas do tempo independentes

Fireworks, o patinho feio da Macromedia.

Blend - Fireworks

Aspectos Básicos das Ferramentas de Desenho.

Cadastro de usuários, com Flash+ASP

Controlando MovieClip pelas teclas direcionais.

O "X" do MacOS no PhotoShop
On Off Button

Page Flip

Céu estrelado

Swirl2

Rotação

Lightsmany

Email com ASP

Marquee

Dincurtrail

Replace

Cursor

Giratoria
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