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

Detener varios MC incluidos en otro MC

Estas en el tema de Detener varios MC incluidos en otro MC en el foro de Flash y Actionscript en Foros del Web. Hola a todos. Es mi primera participación en el foro y os quería preguntar una duda que me ha surgido en la realización de una ...
  #1 (permalink)  
Antiguo 17/12/2007, 08:58
 
Fecha de Ingreso: diciembre-2007
Mensajes: 4
Antigüedad: 16 años, 11 meses
Puntos: 0
Detener varios MC incluidos en otro MC

Hola a todos. Es mi primera participación en el foro y os quería preguntar una duda que me ha surgido en la realización de una animación flash. Tras consultar algunos libros y muchos foros en internet, hice uso de un código para la creación de varios movieclips similares... El caso que todos esos movieclips están a su vez almacenados en otro movieclip (con attachMovie) que los contiene. Mi problema viene cuando debo detener todos estos movieclips, puesto que es necesario para la animación. He visto por ahi que nombrandolos uno a uno y mediante onEnterFrame=false es posible pararlos, pero debido a que en algunas circunstancias me es necesario crear 500 instancias de estos objetos no puedo ir nombrandolos individualmente uno a uno (o si puedo pero me gustaría un código algo más elegante ;) ). A continuación os dejo el código en cuestión, para aclarar mi explicación que tengo la impresión de que no ha sido muy explícita:

function crearParticulasP() {
this.createEmptyMovieClip("grupoParticulas", 0);
initParticula = new Object();
initParticula.vx = Math.floor((Math.random()*5)+1);
initParticula.vy = Math.floor((Math.random()*5)+1);
initParticula.delay = 6;
initParticula.amp = 6;
initParticula.ta = 6;
initParticula.t = 0;
for(i=0;i<500;i++)
{
initParticula._x = (Math.random()*(240-50)+50);
initParticula._y = (Math.random()*(220-180)+180);
initParticula.onEnterFrame = particulaMovimiento;
grupoParticulas.attachMovie("particula","particula "+i, i, initParticula);
}
}

function detenerParticulas () {
initParticula.particula1.onEnterFrame = false //Detengo particula 1
initParticula.particula2.onEnterFrame = false //Detengo particula 2
initParticula.particula3.onEnterFrame = false //Detengo particula 3
.
.
.
initParticula.particula500.onEnterFrame = false //Detengo particula 500
}

Gracias de antemano y perdonen las molestias si esto ha sido respondido antes en el foro, puesto que no lo he encontrado en mi búsqueda.
  #2 (permalink)  
Antiguo 17/12/2007, 14:58
Avatar de SinguerInc  
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 551
Antigüedad: 17 años, 1 mes
Puntos: 5
Re: Detener varios MC incluidos en otro MC

"£$%&$%&"£$!, (perdon), si haces otra cosa asi voy a tu casa y te doy "chas-chas" ya sabes donde!!!

nooo, todo bien, tambien lo he hecho alguna vez..., la respuesta esta en tu codigo, asi como has creado las particulas tienes que "pararlas":

Código:
function detenerParticulas () {
for(i=0;i<500;i++)
{
initParticula["particula" + i].onEnterFrame = false;
}
}
aunque no estoy muy seguro de ese "false" en "onEnterFrame", yo le pondria un "undefined" o "null".

saludos!
__________________
/blog.singuerinc.com
  #3 (permalink)  
Antiguo 17/12/2007, 15:57
 
Fecha de Ingreso: diciembre-2007
Mensajes: 4
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Detener varios MC incluidos en otro MC

Pufffff realmente he estado bastante espeso. I'm sorry llevas toda la razón, pero no se porque no caía en el array... quiero decir que me obsesionaba con este código:

grupoParticulas.initParticula+"i".onEnterFrame = false;

y lógicamente me daba error. No conseguía entender el porque, pero gracias por abrirme la mente. Lo peor es obsesionarse en que uno tiene razón y el ordenador se equivoca xD...

Muchas gracias me has sacado de un buen apuro.
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 00:02.