Ir para conteúdo

POWERED BY:

Arquivado

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

Marcos Fiuza

AS3 - Bug de MovieClips aninhados (Nested MovieClips)

Recommended Posts

Fala galera,

 

Estou ajudando um colega a desenvolver um site em AS3 e encontramos um bug muito interessante. No site ele terá diversos botões animados, que além da animação principal, também terão outros MovieClips animados dentro deles (que ficarão em loop), ou seja, animação dentro de animação. Sempre uso o script abaixo para rodar a animação dentro dos botões conforme o usuário coloca ou tira o mouse de cima dos mesmos.

 

public function _onBotaoEnterFrame($event:Event):void
{
   MovieClip($event.currentTarget).mouseOverAtivo = MovieClip($event.currentTarget).hitTestPoint(MovieClip(root).mouseX, MovieClip(root).mouseY, true);
   
   if (MovieClip($event.currentTarget).mouseOverAtivo)
   {
      MovieClip($event.currentTarget).nextFrame();
   }
   else
   {
      MovieClip($event.currentTarget).prevFrame();
   }
}

 

O que ocorre é que conforme a animação principal do botão é executada, as animações que estão aninhadas ao mesmo, ou seja, as animações que estão dentro dele param de funcionar. Já fiz a adaptação desse mesmo código para funcionar com os eventos de MOUSE_OVER e MOUSE_OUT utilizando a biblioteca TweenLite, mas mesmo assim a animação interna não funciona corretamente, apenas quando a animação principal fica presa a um determinado frame.

 

Adaptei o mesmo código para AS2 e funcionou que é uma beleza.

 

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É você só esqueceu que AS 3.0 trabalha com os MC de forma diferente do AS 2.0

 

Você com o 3.0 pode acessar os childs de um item... ou seja você pode colocar uma função a um menu todo e depois colocar funções aos botões internos. Coisa que no AS 2.0 não da pra fazer.

 

O que acontece ai é que você tem que se lembrar que como eles agem totalmente independentes... você não pode dar um nextFrame em tudo....

 

Você tem que dar um nextframe apenas naquilo que você quer... no principal... os outros não podem ver essa ação se não eles tbm recebem o mesmo efeito...

 

E por isso deixam de funcionar.

 

Abraços

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.