Cristalab

                 ¿Quieres registrarte?

Reiniciar un movieclip de Flash

Por: Zah
16 de Diciembre del 2006
3528 de clabLevel
Otros artículos de Zah
11,769 visitas

Muchas veces nos encontramos con que hemos declarado y modificado un montón de variables, además de crear un montón de clips con attachMovie, en un clip de película (también en el escenario, _root). Resulta que si queremos que todo quede como al principio (un botón Play Again, por ejemplo) puede hacerse eterno borrar todos los clips y variables "a mano".

Se pueden borrar todas las variables y clips (los que hemos creado) usando el bucle for..in, que recorre todas las variables de un objeto, con una variable String que contiene el nombre de cada propiedad. Si queremos saber el valor de esa propiedad, será objeto["propiedad"]. Así podemos eliminar todas las variables con pocas líneas de código:

Código :

for (var a in clip) {
   //Si es un clip attacheado, se borra, de lo contrario no hará nada
   clip[a].removeMovieClip();
   //Borra la referencia de la variable
   delete clip[a];
}


Artículos Relacionados


Etiquetas actionscript

Comentarios | Enviar un comentario
Gracias por el aporte, amigo, es de gran ayuda ;)
Por: LloXx_blog
Muy práctico (y)
Por: Zguillez

Código :

MovieClip.prototype.clear = function () {
   for (var a in this) {
      //Si es un clip attacheado, se borra, de lo contrario no hará nada
      clip[a].removeMovieClip();
      //Borra la referencia de la variable
      delete clip[a];
   }
}
//
clip1.clear();

:wink:
Por: Zguillez

Ayuda de flash :

clear (método MovieClip.clear)
public clear() : Void

Elimina todos los gráficos creados en tiempo de ejecución empleando los métodos de dibujo del clip de película, incluidos los estilos de línea especificados con MovieClip.lineStyle(). Las formas y líneas que se dibujan manualmente durante la etapa de edición (con las herramientas de dibujo de Flash) no se ven afectadas.

Disponibilidad: ActionScript 1.0; Flash Player 6



Ergo

Código :

MovieClip.prototype.resetClip= function () {
   for (var a in this) {
      //Si es un clip attacheado, se borra, de lo contrario no hará nada
      clip[a].removeMovieClip();
      //Borra la referencia de la variable
      delete clip[a];
   }
}
//
clip1.resetClip();

U_U
Por: Zah
Veo preligroso borrar todas las variables de algo como método de re-inicialización, ya que unas se crearán de inicio vacias, otras se crearán de incio con algún valor ya "metido" y otras se crearán al ejecutarse "bajo-demanda".

Y si en _level0 hacemos que la aplicación pase por un frame vacio y acontinuación vuelva al frame que inicializó todo?

Vale que lo mismo utilizas clases estáticas tipo singeltón que habrá que reicializar/resetear, pero el resto se reiniciará solito (en teoría :-)

elSuricatoRojo
Por: elSuricatoRojo_blog

elSuricatoRojo_blog :

Veo preligroso borrar todas las variables de algo como método de re-inicialización, ya que unas se crearán de inicio vacias, otras se crearán de incio con algún valor ya "metido" y otras se crearán al ejecutarse "bajo-demanda".

Si ejecutas este código en un mc y lo mandas al fotograma 1, el efecto será justo el mismo que si hubiera acabado de aparecer.

elSuricatoRojo_blog :


Y si en _level0 hacemos que la aplicación pase por un frame vacio y acontinuación vuelva al frame que inicializó todo?


Haz un attachMovie y luego vuelve al fotograma 1 ¿se borran los clips?
Por: Zah
como ke objeto ( propiedad) me lo podrias explicar mas detallado gracias
Por: lau_blog

lau_blog :

como ke objeto ( propiedad) me lo podrias explicar mas detallado gracias


A ver, para acceder a propiedades de un objeto (cualquier cosa que extienda a Object) normalmente haces objeto.propiedad, por ejemplo, tuMovieClip._visible. Pero si quieres obtener el nombre de esa propiedad de una manera dinámica (con una cadena que no conoces), otra forma de hacer lo mismo es con esta otra sintaxis: tuMovieClip["_visible"], lo cual es muy útil para casos como este.
Por: Zah
Que tal como estan,,, he estado buscando pero aun no se como borrar, limpiar, reiniciar una variable que recoge datos desde en un texto dinamico desde php, le asigno otro valor pero me sigue guardado el valor anterior, y me sigue mostrando la informacion anterior, ya he probado con:

Código :

variable.clear();



Código :

unload.variable();



pero no se como hacer para reiniciar esa variable y que quede vacia....

Gracias
Atentamente,
Sebastian
Por: Chevy
// Se pueden borrar todas las variables y clips
// http://www.cristalab.com/foros/t32471.html
// Mod: Mar Ene 09, 2007 1:05 am
// Mod: 2008.02.04 Pedro Antonio Pelaez
MovieClip.prototype.clear = function () {
for (var a in this) {
this[a].clear(); // Borro su interior tambien
//Si es un clip attacheado, se borra, de lo contrario no hará nada
removeMovieClip(this[a]);
//Borra la referencia de la variable
delete this[a];
this[a] = null;
}
}

Lo que no hace es cancelar la carga. Si hay alguna carga en proceso esta quedara en el aire hasta que termine.
A ver si alguien da con una forma de pararlas.
Por: Pedro Antonio Pelaez
ey necesito ayuda urgente... tengo un codigo de un juego de atrapar objetos en movimiento, el problema es que ese juego solo va mientras carga la pag, pero no c como hacer para cancelar ese codigo ya que avanzo y sigue durante tooodooo el contenido de la pag
Por: Juan Pablo-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.