Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cassio Pires

AS 3.0 Animação em frames!

Recommended Posts

no Action Script 3.0 .

gostaria de saber como faço para depois de rodar a animação do frame especifico, voltar a rodar a animação de antes do frame especifico que foi ativado com um clique de botão!

 

ex: no frame 1 tenho meu personagem animado, que esta parado! no frame 2 tenho meu personagem animado, jogando uma pedra.

gostaria de saber como eu faço para ao clicar no botão, rodar toda a animação do frame 2, e depois de acabar a animação do frame 2 voltar automaticamente para o frame 1.

 

minha action ta assim: (btatk1 é o botão de click) e (atk1 é o frame 2 que é ativado)

 

btatk1.addEventListener(MouseEvent.CLICK, atacar);

function atacar(event:MouseEvent):void
{

gotoAndStop("atk1");

}

 

ja já tiver um topico sobre me indique é que sou novato no fórum,

e ainda estou prendendo a programar, so aprendi animação!

desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

No frame 1 você faz o seguinte:

botao_bt.addEventListener( MouseEvent.CLICK, anima );

function anima( e:Event ){

gotoAndPlay( 2 );

};


No último frame da animação basta inserir o código:

 

gotoAndStop( 1 );

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara não deu certo!

é pra por dentro da animação que está no frame 2, no ultimo frame da animação gotoAndStop(1); se fizer assim vai é pro frame 1 mas da animação dentro do frame 2 da cena principal. quero que va para o frame 1 da cena principal. o frame 1 e o 2 estão na cena principal e cada frame ja tem sua animação!

 

fica assim gotoAndStop(1); no ultimo frame da animação do frame 2.

 

quando eu clico ele roda a animação do frame 2 e para, e não da para fazer mais nada.

 

pq ele fica no frame 1 da animação.

 

se de pra ajudar de novo, agradeço. e flw!!

No frame 1 você faz o seguinte:

botao_bt.addEventListener( MouseEvent.CLICK, anima );function anima( e:Event ){gotoAndPlay( 2 );};

No último frame da animação basta inserir o código:

gotoAndStop( 1 );

[]'s

 

 

cara não deu certo!

é pra por dentro da animação que está no frame 2, no ultimo frame da animação gotoAndStop(1); se fizer assim vai é pro frame 1 mas da animação dentro do frame 2 da cena principal. quero que va para o frame 1 da cena principal. o frame 1 e o 2 estão na cena principal e cada frame ja tem sua animação!

 

fica assim gotoAndStop(1); no ultimo frame da animação do frame 2.

 

quando eu clico ele roda a animação do frame 2 e para, e não da para fazer mais nada.

 

pq ele fica no frame 1 da animação.

 

se de pra ajudar de novo, agradeço. e flw!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então você só precisa subir um nível na estrutura dos seus objetos. Nesse caso é só você colocar this["parent"] antes do gotoAndStop(1);

Ficaria assim:

this["parent"].gotoAndStop(1);

Assim o nível superior (parent) do seu objeto (this) seria afetado pala ação (gotoAndStop(1)).

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Cassio, tem "N" formas de se fazer, mas tudo bem, sei que você está começando agora...

 

Em vez do "gotoAndStop", você poderia chamar uma função personalizada no mesmo frame 2 que levaria de volta para o frame 1 etc etc...

 

Mas para resumir e aproveitar a dica do Marcos faça o seguinte:

botao_bt.addEventListener( MouseEvent.CLICK, anima ); 

function anima( e:Event ){ 

gotoAndStop( 2 ); 

};

E no fim da animação coloque:

this["parent"].gotoAndStop(1);

 

Bs,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.