Comunidad de diseño web y desarrollo en internet online

Controlar varios clips

Citar            
MensajeEscrito el 26 Nov 2005 12:59 pm
Hola de nuevo y gracias de antemano.

mi cuestion es la siguiente. Tengo varios clips y quiero que se reproduzca el primero, cuando termine poder detectarlo de alguna forma y que empieze el siguiente, asi con todos los demas...

he intentado con miclip_mc._currentframe, metiendolo dentro de un if..., dentro de un while..., y otros experimentos raros, pero no consigo controlarlos.

como leches puedo controlar las cargas de los clips?.

Por Carlos(tid)

13 de clabLevel



Genero:Masculino  

Sevilla (España)

msie
Citar            
MensajeEscrito el 27 Nov 2005 09:30 am
Bueno, me sale algo de lo que quiero, con el siguiente codigo, pero no se si es la manera correcta, Creo que debe haber algo mas simple.


Código :

stop()
// tengo en la escena principal dos clips,(peli1_mc, peli2_mc)
// en el ultimo frame de cada uno pongo estas dos variables a true
var peli1control:Boolean = false // variable del clip1
var peli2control:Boolean = false // variable del clip2

// paro las dos peliculas
peli1_mc.stop() // esta line sobra, pero la pongo por aclaracion
peli2_mc.stop()

// inicio la primera pelicula
peli1_mc.play()
// controlo en cada frame si a llegado al final y ha cambiado la variable peli1control a true
peli1_mc.onEnterFrame = function(){
   if (peli1control) { //si ha cambiado a true la detengo, elimino onEnterFrame, e inicio la segunda pelicula del mismo modo
      peli1_mc.stop()
      delete peli1_mc.onEnterFrame
      
      peli2_mc.play() // inicio la segunda pelicula
      peli2_mc.onEnterFrame = function(){ // controlo igual que en la primera pelicula
         if (peli2control) {
            peli2_mc.stop()
            delete peli2_mc.onEnterFrame // ya han terminado las dos peliculas
            }
      }
      
      }
   }
[/code]

Por Carlos(tid)

13 de clabLevel



Genero:Masculino  

Sevilla (España)

msie
Citar            
MensajeEscrito el 27 Nov 2005 01:45 pm
Hola Carlos, aunque hay varias maneras de hacer lo que quieres, puestos a meter código dentro de cada movie, mejor que un sistema de variables podrías llamar a una función que se encargue de controlar todo.

Un ejemplo sencillo:

Código :

// En el primer frame

var puntero:Number = 0;

function callback()
{
   puntero++;
   this["mc"+puntero].gotoAndPlay(2);
}
callback();


Y dentro de cada clip, en el último frame:

Código :

_parent.callback()
stop();


Por ejemplo, mete 5 clips en el escenario, y los llamas mc1, mc2 ... mc5. Cada vez que un clip acabe su animación llamará a la función callback, que se encargará de lanzar el siguiente clip. Así te ahorras el enterFrame de tu caso para estar comprobando continuamente.

Este código no está nada pulido, pero te tiene que dar el camino a seguir. Por ejemplo, si cada uno de tus clips tuviera que tener nombres distintos (que no empezaran por la misma estructura como en mi caso), podrías pasarle a la función un parámetro con el nombre del clip, etc.

Prueba a ver como te va mejor y nos cuentas. Saludos!!

Pd: para que corra la movie he puesto un gotoAndPlay(2) y un play() en el segundo frame de cada peli porque con un play dentro de la función no lo lanza. Esta es una de las cosas de flash que nunca he entendido bien...

Por llops

294 de clabLevel

1 tutorial

 

Barcelona

firefox
Citar            
MensajeEscrito el 27 Nov 2005 08:32 pm
Gracias danisan, bastante mas util tu solución, necesitare algunos cambios, porque los mc, no serán siempre los mismos, y ademas pueden ser tres,cinco,dos.... .
Ya tengo algo visto de ello, pero uno de los problemas era precisamente que no me ejecutaba el play como tu comentas.

Sabes qué, yo era programador de la epoca de clipper 87, ya ha llovido bastante desde entoces, y hace falta ponerse al día.

Muchas gracias y ya te comento algo desde Sevilla.

Por Carlos(tid)

13 de clabLevel



Genero:Masculino  

Sevilla (España)

msie

 

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