Foros del Web » Creando para Internet » Flash y Actionscript »

Destruir tween de una película a otra

Estas en el tema de Destruir tween de una película a otra en el foro de Flash y Actionscript en Foros del Web. Qué tal: Espero el título sea lo suficientemente claro. Esto es lo que tengo: Película contenedora que carga nuevas películas con botones de avance y ...
  #1 (permalink)  
Antiguo 29/09/2009, 18:09
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 19 años, 9 meses
Puntos: 0
Exclamación Destruir tween de una película a otra

Qué tal:

Espero el título sea lo suficientemente claro.
Esto es lo que tengo:
  • Película contenedora que carga nuevas películas con botones de avance y retroceso.
  • Cada película que es cargada en la película contenedora. Las películas cargadas tienen animaciones con la clase new Tween();

El problema es que, si avanzo o retrocedo rápidamente para ver una película siguiente o anterior, los tween se quedan en memoria y se repiten de una película a otra.

Es decir, si tengo una animación de un fadein ejecutándose y de pronto avanzo o retrocedo a una nueva película, el fadein de la nueva película inicia donde se quedó la anterior.

Ya he probado destruyendo la variable tween cada que entro en una nueva película, ya probé en el cargador descargar las películas predecesoras con removeMovieClip(miPelicula). Y no le hallo! :

Anexo el código de mis películas:

Contenedor:

Código PHP:
function cargaPelicula(peliculaParaCargar:String):Void {
    var 
listener:Object = new Object(); 
    var 
cargador:MovieClipLoader = new MovieClipLoader(); 
    
cargador.addListener(listener);
    var 
preload:MovieClip;
    
listener.onLoadStart = function(clip:MovieClip):Void {
        
clip.setMask(mascaraContenidos);
        
clip._visible false
        
clip.stop(); 
        
preload _root.attachMovie("preloader","preload",_root.getNextHighestDepth(),{_x:escenarioMitadLargo_y:(escenarioMitadAlto-altoBotones)}); 
        
//trace("película Start"); 

    

    
listener.onLoadProgress = function(clip:MovieClip):Void 
        
//trace("película progress"); 
    

    
listener.onLoadInit = function(clip:MovieClip):Void {
        
clip._visible true;
        
clip._lockroot true;//cambia las rutas de los movieclips cargados a relativas no absolutas
        
clip.play();
        
//trace("película Init cargada"); 
    

    
listener.onLoadComplete = function(clip:MovieClip):Void {
        
removeMovieClip(preload); 
        
//trace("película complete");
        //cargador.removeListener(listener);
        //delete cargador;
        //cargador.unloadClip(peliculaParaCargar);
    
}
    
cargador.loadClip(peliculaParaCargarcontenidosMain); 

Funciones tween:

Código PHP:
if (tweenFade != undefined){
    
tweenFade.rewind();
    
delete tweenFade;
} else {
    
tweenFade = new Tween();
}
function 
fade(movieClipeasinginiciofintiempoSeg):Void {
    
//delete tweenFade;
    
tweenFade = new Tween(movieClip"_alpha"easinginiciofintiempoSegtrue);
    
listenerFade = new Object();
    
tweenFade.addListener(listenerFade);
    
tweenFade.onMotionFinished = function():Void  {
        
tweenFade.removeListener(listenerFade);
    };
}
if (
tweenMover != undefined){
    
tweenMover.rewind();
    
delete tweenMover;
} else {
    
tweenMover = new Tween();
}
function 
mover(movieClippropiedadeasinginiciofintiempoSeg):Void {
    
//delete tweenMover;
    
tweenMover = new Tween(movieClippropiedadeasinginiciofintiempoSegtrue);
    
listenerMover = new Object();
    
tweenMover.addListener(listenerMover);
    
tweenMover.onMotionFinished = function():Void  {
        
tweenMover.removeListener(listenerMover);
    };
}
//-------------------------------------------------------------------------------
//----------------------------   FUNCIONES GENERALES   --------------------------
//-------------------------------------------------------------------------------
titulo._alpha 0;
grafico1._alpha 0;
grafico2._alpha 0;
var 
tituloPosY:Number titulo._y;
var 
grafico1PosX:Number grafico1._x;
var 
grafico2PosX:Number grafico2._x;
fade(titulo,Strong.easeOut,titulo._alpha,100,1);
mover(titulo,"_y",Strong.easeOut,tituloPosY-100,tituloPosY,1);
listenerFade.onMotionFinished = function():Void  {
    
fade(grafico1,Strong.easeOut,grafico1._alpha,100,1.5);
    
mover(grafico1,"_x",Bounce.easeOut,grafico1PosX-300,grafico1PosX,1.5);
    
fade(grafico2,Strong.easeOut,grafico1._alpha,100,1.5);
    
mover(grafico2,"_x",Bounce.easeOut,grafico2PosX+300,grafico2PosX,1.5);
}; 
¿Alguna idea?

De antemano agradezco su ayuda.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:35.