STICKMAN (155 pts)

LUI FERNANDO (151 pts)

PANDOGO (82 pts)

ZECA BALA (45 pts)

GABRIEL SPORCH (53 pts)

BÁRBARA TOSTES (64 pts)

FLASHGURU (155 pts)

DAAFY (55 pts)

LUIZ AVANCI (51 pts)

JONAS GALVEZ (521 pts)

MUZAK (45 pts)

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

Meu TXT não está abrindo no Flash com load variables.

Como eu faço para alterar nome do .exe na barra de títulos e o ícone também?

Tem como alinhar objetos em frames diferentes de uma vez só?

Como simular, com sharedObjects, um cookie e guardar o frame no qual o usuário estava quando saiu do filme?

Alguém conhece integração flash no access. Não como acesso web, e sim como desing gráfico para formulários de access.

Como bloquear o código fonte HTML de sua página?

Preciso de um exemplo de um efeito de vibração?

Como faço para repetir um comando, sem repeti-lo todas vezes?

Para que usar onClipEvent?

Tem como abrir um PDF (acrobat reader) entro do Flash? Pode ser com Delphi?

Qual a melhor extensão de imagens bitmap para usar no Flash?

Utilização do Bryce 3D.

Como usar um movieclip como cursor?

Aula teórica de interação flash + script.
Sub-Menus entre frames, com o Dreamweaver

Preloader real no Flash5.

Controlando MovieClip pelas teclas direcionais.

Duplicate Movieclip.

TV Scan Lines - Fireworks

Download de arquivos com a classe File Reference

Alterando Artistic Media no Corel Draw

Janela popup.

Funções de actionscripts

Pre-carregador (Preloader)

Preloader com máscara

Animate - Fireworks
Worms 3d

Rippled

Starfield

Textfind

Control Sound

F5doubleclick

Preload com ampulheta

Natal Noel

Desenho dinâmico

Contador continuo

Barra de Scroll

Search
HOME | TUTORIAIS
Movimento por meio de actionscript
por Alexandre Porto

Mover um objeto pelo stage com interpolação não é uma tarefa muito difícil de conseguir, mas tem seus limitações. Se analizamos a forma na qual o Flash interpreta os movimentos no stage, chegaremos à conclusão de que um objeto tem que estar num keyframe para aplicar uma interpolação. Colocamos um movieclip no stage no keyframe1, com as coordenadas x=100 e y=100, e outro no keyframe 20, com as coordenadas x=300 e e=100. Agora aplicamos uma interpolação de movimento. O que faz Flash é calcular a diferença de posição entre o keyframe1 e o keyframe 20 e mover o objeto de uma coordenada a outra. Tudo isso e muito mais é possível conseguir também através de programação. Nesse tutorial vamos aprender como fazê-lo.

Quando terminarmos o tutorial deveremos ter algo parecido como isso:

Primero, vamos criar um movieclip com um bola, por exemplo. Colocamos ele no stage e damos o nome de instância no painel "Propriedades de instância", "bola". Necessitamos 3 keyframes na timeline principal para realizarmos o movimento.

Keyframe1

No primeiro keyframe teremos que declarar as variáveis que controlarão a bola. A variável "velocidade" controlará a velocidade do movimento da bola.

velocidade = 5;


Um número maior moverá a bola mais rápido pelo stage. Também necessitamos saber a posição atual da bola. As propriedades de um objeto podem ser lidas através do comando Get Property. Para nosso exemplo necessitamos saber somente a posição do símbolo na coordenada X, pois o movimento será apenas horizontal. Declaramos agora a segunda variável:

xpos = "getProperty ( bola, _x )";

Só nos falta o raio da bola, que em nosso caso será a largura de nosso movieclip dividido por 2. A largura de um objeto é capturada através do comando Get Property e sua propiedade _width (largura):

raio = getProperty ( bola, _width )/2;

Agora podemos passar ao keyframe2 onde estarão as actions que irão mover o objeto pelo stage.

Keyframe2

Aqui, no keyframe2, teremos que ler a posição atual de "bola" e adicionar este valor à nossa variável "xpos" que vai atualizando a cada vez que o movieclip se movimenta. O comando Set Property adiciona o valor de um objeto à variable, em nosso caso X Position:

setProperty ("bola", _x, xpos);


Agora teremos que incrementar a variável "xpos" com "velocidade", para obtermos um novo e dinâmico valor de "xpos":

xpos = xpos + velocidade;


Claro, depois disso teremos que checar se "bola" não se chocou contra a parede, que é no fundo o comprimento do filme. Teremos que incluir uma estrutura condicional If:

if (xpos >=(300-raio) or xpos <=(0+raio)) {
   velocidade = velocidade * -1;
}


Criei esse filme do exemplo com o tamnaho de 300X170 pixels.

Estamos checando se a variável "xpos" é maior ou igual ao comprimento de nosso filme somando ou diminuindo o raio, dependendo da posição da bola. Se a condição é verdadeira (true), será executada a linha2 do código e a variável "velocidade" mudará para seu valor negativo, ou seja, multiplicaremos seu valor por -1. Se a condição If for falsa (false), não será executado o código dentro da condição.

Keyframe3

Depois da comprovação somente nos falta voltar ao keyframe2 e assim o código será executado outra vez (loop) com o valor de "xpos" atualizado.

gotoAndPlay (2);


E para criar um movimento com o clique de um botão?

Podemos adaptar esse mesmo arquivo para isso. Crie uma nova camada e inclua um botão. Podemos aproveirar os comandos do keyframe 2 para dar o movimento a partir do botão, certo? Então a action incluída nele seria apenas:

on (release) {
   gotoAndPlay (2);
}


Não se esqueça de colocar uma ação stop no primeiro keyframe de seu filme.

Para incrementar um pouco mais, criei uma desaceleracão no objeto. Veja no exemplo.

Como?

No primeiro keyframe, altere o valor de "velocidade" para 30 e adicione a declaração da variável "freio".

freio = 1;


No último keyframe você insere as seguintes actions:

freio = freio + 13;
velocidade = velocidade - freio/30;
//esses valores vão variar de acordo com seu filme.
if (velocidade <= 1) {
   velocidade = 1;
}
if (xpos == 300-raio) {
   gotoAndStop (1);
}


Na primeira linha ele incrementa "freio" e depois diminui o valor de "freio/30" de "velocidade". Nas terceiras e quartas linhas, o código apenas impede que o valor de "velocidade" se torne negativo e nas duas últimas, faz com que o filme volte para o primeiro frame. Repare, no segundo exemplo anexo, que eu determinei uma posição fixa para "bola" no primeiro frame.

setProperty ("bola", _x, "30");


Simples não? É claro que você incrementar o que aprendeu aqui para criar outras movimentações etc. Isso é tudo.

Espero que este tutorial tenha sido útil. Até á próxima! Baixe aqui os arquivos exemplo desse tutorial.



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
4 comentários


Comentário de douglas
| 13/5/2011 - 14:29 |
http://http://www.pontoflash.com.br/tutoriais_con.php?autor=

Como mover objetos atraves do actionscript 2.0 , queria atraves de um clique que o objeto fosse lançado



Comentário de douglas
| 13/5/2011 - 14:29 |
http://http://www.pontoflash.com.br/tutoriais_con.php?autor=

hvujbhib



Comentário de TioBastinho
| 8/12/2010 - 15:24 |


Caro Alexandre: Tenho procurado ver quase que diariamente essa sua seção, a procura de resposta do primeiro comentário que fiz. Será que o que estou querendo é tão difícil assim, pois nenhum webdesigner postou nenhum tópico sobre essa questão de girar as peças de um quebra cabeça, a não ser no tuto do flash,(puzzly), mesmo assim de difícil execução. Me disponibilize seu e-mail, que lhe envio um arquivo fla. de teste do quebra cabeça da forma que quero. Muito obrigado pela atenção. Um abraço. TioBastinho



Comentário de TioBastinho
| 5/12/2010 - 12:20 |


Caro Alexandre: Muitíssimo interessante este seu tuto passo a passo, no entanto, gostaria que vc me desse uma dica. è o seguinte: Estou desenvolvendo um quebra cabeça com o actionscript 2.0. O problema é que não conseguí colocar o código certo para que as peças girem com o uso das setas de direção, pois apesar de colocar um código em todas as peças, quando testo apenas a 1ª faz a rotação.Outro código gira todas as peças ao mesmo tempo.Se for possível disponibilize um toto sobre isso. Muitíssimo obrigado pela atenção. Um abraço TioBastinho