ALEXANDRE PORTO (1281 pts)

RICARDO TAKAHASHI (180 pts)

DAUTON JANOTA (255 pts)

SASHA GUDEY (235 pts)

FLASHGURU (155 pts)

PEDRO CLAUDIO (50 pts)

GÉRIO (93 pts)

GABRIEL SPORCH (53 pts)

ÉMERSON ROCHA (85 pts)

KEN AWAMURA (130 pts)

EDUARDO CARREGA (150 pts)

PANDOGO (82 pts)
Treinamento PontoFlash de Flash e ActionScript

Quero usar uma variável importada de um TXT numa ação do Flash.

Tenho duas músicas no site, como crio um botão para mudar de música?

Que programas tiram as bordas, barra de título de um projetor (executável)?

Como checar se o usuário escreveu um email válido certo no formulário?

Como fazer um preloader bem simples?

Porque imagens TIFF têm melhor qualidade do que as imagens em .JPG (1).

Um filme feito no Flash5 abre em quem só tem o FlashPlayer 4?

Eu posso colocar um evento rollOver em um campo de texto?

Dá pra fazer um menu popup usando a propriedade _currentFrame?

Como fazer um menu que se move na horizontal e diminui no mouse over?

Por que o "&" retorna erro num texto importado no flash?

Como eu posso simular um sorteio de dados?

Porque algumas vezes o flashplayer abre o browser e não o editor de email quando uso 'mailto'?

Tem como eu checar a digitação em um campo de texto e disparar um evento?
Jogo de colorir.

Um contador Flash + PHP

Curiosidades.

Betinhocarreiro e Dysney.

Citroen, máscaras que simulam vídeo - Avaliação de sites

Comunicação Flash-PHp-MySql - introdução

CD Record (um player com clips arrastáveis).

Objeto Color

Colisão (hitTest)

Cursor customizado no Flash5.

Flash Studio Pro: Dando poderes ao Flash

Alterando Artistic Media no Corel Draw.
Snooker

Volume mixer

Alpha

Tweeneng com alpha

Envelhecimento

Scroll Whell

Regressivo

Velocímetro

Drag hittest

Xbox f5

Mira mouse

Duplication
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