SYDNEY GANHO (60 pts)

MARCELO SIQUEIRA (96 pts)

GABRIEL SPORCH (53 pts)

ILVA RUDEV (90 pts)

LEANDRO AMANO (83 pts)

STICKMAN (155 pts)

ZEBEDIAH (35 pts)

SÁVIO PONTE (39 pts)

DAUTON JANOTA (255 pts)

DANIELA PIRES (86 pts)

KEN AWAMURA (130 pts)

SASHA GUDEY (235 pts)
Treinamento PontoFlash de Flash e ActionScript

FlashDecompiler

Alguém poderia me dar umas dicas sobre o Flash Remoting?

Como criar uma função só para executar uma outra função com certos parâmetros?

É possível mostrar uma mensagem numa data específica?

Criar SWF em tempo de execução, ou seja, criar SWF a partir de PHP.

É possível incluir imagens em um arquivo HTML inserido dentro de um Flash e com scroll?

Preciso desenhar um coração no flash.

Queria saber como fazer uma scrollbar (barra de rolagem) no flash.

Não consigo enviar uma ação de dentro de um movieclip para outro. Eles estão em frames diferentes na timeline principal.

Usando o método split para criar uma array de uma string?

Como retornar variáveis de um PHP no Flash?

Como validar um email no Flash 5?

Como colocar um botão no meu site para fechar a janela do navegador?

Como fazer um jogo de perguntas e respostas?
Code Animation - Parte 2

Animação no Flash.

Roof e Marciowebmaster - Avaliação de sites

Número randômicos sem repetições no Flash 5.

A história do Flash.

Criação de um CD híbrido

Menu deslizante.

Sistema de busca utilizando Flash + ASP .

Curiosidades.

Janela popup.

Desenhando interativamente no Flash 5

Site da banda os Titãs - Avaliação de sites
Lacraia

Email com ASP

Botão comutador

MovieClip.onCollision

ComboBox duplo

Sistema de notícias Flash+PHP

Message Board Flash+PHP

Giratoria

campo de texto no Down

Planeta orbita

Pêndulo

Colormask
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