stop/play a todas las movies.

supongamos que tenemos varias animaciones en el timeLine, supongamos también que tenemos varios clips animados dentro de otros clips que también estan animados.

ahora digamos que queremos detener todas las movies en un momento dado, sería tedioso tener que hacer un stop()/play() por cada movie cierto?

es aquí cuando nuestos amigos for in y typeof unen sus fuerzas para echarnos una mano.


function stopAllMovies (mc){
  for( var n in mc ){
    if(typeof mc == "movieclip"){
      mc[n].stop()
      stopAllMovies (mc[n])
    }
  }
}
function playAllMovies (mc){
  for( var n in mc ){
    if(typeof mc == "movieclip"){
      mc[n].play()
      playAllMovies (mc[n])
    }
  }
}

basta con un stopAllMovies(this) en _level0, para que tooodas las movies que esten en el escenario con animacion (tween/motion) se detengan, o playAllMovies(this) para que sigan.

ahora, como que dos funciones para play/stop es mucho, ya que sólo cambia la accion. qué tal si mejor hacemos una sola función para eso, asi le pasaríamos el comando de lo que tiene que hacer y listo.

function manageMovies (mc,accion){   for( var n in mc ){     if(typeof mc == "movieclip"){       mc[n][accion].apply(mc[n])       manageMovies (mc[n],accion)     }   } }
ahora haríamos algo como esto manageMovies(this,"stop") o manageMovies(this,"play"), para tener el mismo resultado que con las otras dos funciones.

en este swf, hay dos movieClips con animación y otras dos que cotienen movieClip animadas
haz click en el escenario para stop/play de las movies.

el código es este.


function manageMovies (mc,accion){
  for( var n in mc ){
    if(typeof mc == "movieclip"){
      mc[n][accion].apply(mc[n])
      manageMovies (mc[n],accion)
    }
  }
}
acciones = ["play","stop"];
hacer = true;
this.onMouseDown = function (){
  hacer = !hacer;
  accion = hacer ? acciones[0] : acciones[1]
  manageMovies(this,accion);
  haciendo.text = accion;
}

stop();

2 Comments

El Quiza said:

Muy inteligente, no se me habia ocurrido eso,, de hecho nunca se me hubiera ocurrido jajajajajajaja. Ahora toca experimentar y poner a trabajar el CEREBRO!!

Saludos desde SALTILLO Komunidad ....

El Quiza =)

JAVIER said:

MUY BUENAS

ESTOY INTENTANDO UTILIZAR EL EJEMPLO ·stop/play a todas las movies. " PERO NO CONSIGO QUE ME FUNCIONE.
CREO QUE NO SE DONDE PONERLO, YO LO NECESITO EN UN BOTON.
SI FUERAS TAN AMABLE DE ESPLICARMELO ESTARIA MUY AGRADECIDO.

UN SALUDO Y GRACIAS DE ANTEMANO