Comunidad de diseño web y desarrollo en internet online

¿Como saber cuando termina una animacion?

Citar            
MensajeEscrito el 25 Mar 2012 06:49 am
Buenas gente! Les comento mi duda:

Tengo un sencillo codigo que tiene un "this.gotoAndPlay(2)", y a esto necesito agregarle un listener para que cuando termine la animacion valla a una funcion para hacer determinada accion. Les muestro un codigo a modo de ejemplo:

Código ActionScript :

import flash.events.Event;
import fl.transitions.Tween;
import fl.transitions.TweenEvent;

stop();
this.gotoAndPlay(2);
this.addEventListener(TweenEvent.MOTION_FINISH, termino_animacion);

function termino_animacion(e:TweenEvent)
{
   trace("Termino Animacion");
}



Asi es como se me ocurrio hacerlo pero obviamente no funciono..

Gracias!!

Por xpumax

40 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Mar 2012 02:51 pm
depende de muchas cosas, ya que si la animacion la tenes dentro de un movieclip, tendrias que ponerle acciones para que vaya al stage, todo depende donde se encuentre la funcion que quieras ejecutar, sino, podrias probar hacer la animacion en codigo, en el stage principal, y ahi el codigo funcionara sin problemas, saludos.

Por skaterseba

Claber

170 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Mar 2012 04:58 pm
Te comento lo que es, ya que eso que mande era un codigo asi nomas de ejemplo.

Es un archivo swf (el cual es una de las secciones de un swf principal) que tiene una clase asociada. Esa clase tiene dos metodos publicos (animacionEntrada() y animacionSalida()), que hacen navegar al swf en sus fotogramas. Necesito que animacionSalida(), dispare un evento cuando termine la animacion.
Te muestro el codigo, es muy sencillo:

Código ActionScript :

package {
   import flash.display.MovieClip;
        import flash.events.Event;
   
   public class Seccion_Laempresa extends MovieClip {
      
      public const ANIMATION_OUT_FINISH:String = "animation out finish";

      public function Seccion_Laempresa() 
      {
      
      }      
      public function animacionEntrada()
      {
         this.gotoAndPlay("Entrada"); 
      }
      public function animacionSalida()
      {
         this.gotoAndPlay("Salida"); //reproduce el swf a lo largo del fotograma "Salida". Y es aqui donde tendria que disparar un evento y capturarlo con un listener para que valla a la funcion de abajo
      }
      private function finAnimacion():void //esta funcion se ejecua al terminar la animacion de salida
        {
           dispatchEvent(new Event(ANIMATION_OUT_FINISH)); //y dispara el evento
        }
      
   }
   
}


Se entiendo no? es sencillo el codigo, solo necesito que se dispare el evento cuando termina la animacion, que un listener lo capture y que valla a la funcion "finAnimacion".

Gracias loco!

Por xpumax

40 de clabLevel



 

chrome
Citar            
MensajeEscrito el 26 Mar 2012 12:03 am
aver si entendi bien

tenes que agregarle lo del 1er ejemplo, y luego mandarlo a que reproduzca o vaya a otro frame, osea, algo en el root
por ende, si entendi tu idea seria algo como, tween/oanimacion.addeventlistener(TweenEvent.MOTION_FINISH, terminaTween)
function terminaTween(tweenEvent:event):void
{
root.gotoAndPlay /o stop();
}
si no es eso, la verdad no capto la idea :P espero haberte ayudado.

Por skaterseba

Claber

170 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Mar 2012 03:39 am
Nono, lo del primer post era solo un ejemplo para no poner todo el codigo real. Lo que puse despues (la clase) es lo que realmente tengo programado. Despues lo demas si es asì, pero en la funcion "terminaTween" solo tiene que disparar un evento con eventDispatcher, el cual lo capturo desde el swf Principal.

Por xpumax

40 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.