Comunidad de diseño web y desarrollo en internet online

Vaciar contenido de movie clip AS2

Citar            
MensajeEscrito el 09 Mar 2009 04:05 pm
Hola clabers acudo en su ayuda para saber ver si me pueden ayudar en resolver un problema con una galería en AS 2

La galería que estoy realizando tiene varios botones en donde cada uno representa una categoría y dependiendo del botón que presione el usuario carga las imágenes de esa categoría como thumbnails en un movie clip y cuando el usuario presiona cualquiera de los thumbnails se carga la imagen original en el centro del escenario.

Todo bien hasta allí, el problema viene cuando el usuario intentar ver otra categoría y se cargan los nuevos thumbnails en el movie clip y los anteriores no se eliminan, y quedan tanto los anteriores como los nuevos, cuando solo deberían de aparecer los las imágenes del la nueva categoría seleccionada

Mi pregunta es:
¿Existe algún método en actionscript que me permita eliminar los movie clips cargados en un clip de película? :?

Para remover los movie clips tengo esta función pero no los remueve del todo:

Código ActionScript :

function remover_imagenes(id)
{
   
   image = []
   clip_to_remove = []
   thumbnails = []
   for(i=0 ; i < clip_to_remove.length ; i++)
   {
      eval("thumbnail_mc.t" + id).clear()
   }
   thumbnail_mc.clear();
   load_images(id)
}


Función que carga las imágenes es esta:

Código ActionScript :

function thumbnails_fn(k, image_width, image_height)
{
   thumbnail_mc.createEmptyMovieClip("t"+k, 600+k);
   clip_to_remove[k] = "t" + k
   tlistener = new Object();
   tlistener.onLoadInit = function(target_mc)
   {
      target_mc._width = image_width
      target_mc._height = image_height
      target_mc._y = ((thumbnail_mc._y + thumbnail_mc._height) - 40) // 80 * k
      target_mc.pictureValue = k
      target_mc.onRelease = function()
      {
         p = this.pictureValue - 1
         nextImage()
      }
      target_mc.onRollOver = function()
      {
         this._alpha = 50
         thumbNailScroller()
      }
      target_mc.onRollOut = function()
      {
         this._alpha = 100
      }
   }
   image_mcl = new MovieClipLoader()
   image_mcl.addListener(tlistener)
   image_mcl.loadClip(thumbnails[k], "thumbnail_mc.t" + k)
}


Si necesitan otra parte de código me dicen y lo posteo.

Por psycho-vnz

Claber

1186 de clabLevel

7 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 09 Mar 2009 06:02 pm
¿Remover?
Si es con loadMovie entonces unLoadMovie
Si es con createEmptyMovieClip, attachMovie o duplicateMovieClip usa removeMovieClip

El clear se usa cuando dibujas con el drawing API

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Mar 2009 07:17 pm
solisarg gracias por tu respuesta, he reemplazado en la función remover_imagenes el for

Código ActionScript :

for(i=0 ; i < clip_to_remove.length ; i++) 
   { 
      eval("thumbnail_mc.t" + id).clear() 
   } 


Por:

Código ActionScript :

for(i=0 ; i < clip_to_remove.length ; i++)
   {
      eval("thumbnail_mc.t" + i).unloadClip("image_mcl." + k)
      eval("thumbnail_mc").removeMovieClip("t" + i)
   }


Pero no me elimina las imágenes del todo en los thumbnails :?, me explico: Al seleccionar alguna de las categorias, se tienen que eliminar los thubmnails de la categoria previa y luego cargarse las imagenes de la nueva categoria seleccionada.

Si te sirve de mas información los thumbnails estan siendo cargados en MovieClipLoader's dinámicos

Por psycho-vnz

Claber

1186 de clabLevel

7 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Mar 2009 08:07 pm
Si se eliminan algunos pero no todos, la sospecha entonces recae sobre clip_to_remove.length ... ¿no estará apuntando a la nueva categoría en vez de la anterior?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Mar 2009 09:00 pm
El array clip_to_remove que contiene los elementos cargados esta almacenado los valores correctamente para el momento en que los estoy eliminando.

Algo que he visto en tiempo de ejecución del swf es que el movie clip que contiene los thumbnails siempre tiende a crecer y en ningún momento se adapta al total de thumbnails cargados de la categoría seleccionada.

Si quieres monto un ejemplo en Internet para que veas cual es el comportamiento del SWF

Por psycho-vnz

Claber

1186 de clabLevel

7 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Mar 2009 07:15 pm
Ya solvente ^^ lo que hice fue crear otro movie clip dentro de thumbnail_mc:

Código ActionScript :

function thumbnails_fn(k, image_width, image_height)
{
   // este par de lineas me alegraron el día
   thumbnail_mc.createEmptyMovieClip("container_thumb_mc", 600 + k)
   thumbnail_mc.container_thumb_mc.createEmptyMovieClip("t" + k, 600 + k)
   
   clip_to_remove[k] = k
   tlistener = new Object();
   tlistener.onLoadInit = function(target_mc)
   {
      tamanio += image_height + 10
      
      target_mc._width = image_width
      target_mc._height = image_height
      target_mc._y = ((thumbnail_mc._y + thumbnail_mc._height) - 40) // 80 * k
      target_mc.pictureValue = k
      target_mc.onRelease = function()
      {
         p = this.pictureValue - 1
         nextImage()
      }
      target_mc.onRollOver = function()
      {
         this._alpha = 50
         thumbNailScroller()
      }
      target_mc.onRollOut = function()
      {
         this._alpha = 100
      }
   }
   image_mcl = new MovieClipLoader()
   image_mcl.addListener(tlistener)
   image_mcl.id = k
   image_mcl.loadClip(thumbnails[k], "thumbnail_mc.container_thumb_mc.t" + k)
}


Y así es como los remuevo:

Código ActionScript :

function remover_imagenes(id)
{
   for(i=0 ; i < clip_to_remove.length ; i++)
   {
      eval("thumbnail_mc.image_mc.").unloadClip("t" + i)
      eval("thumbnail_mc.image_mc.").removeMovieClip("t" + i)
      
   }
   thumbnail_mc.removeMovieClip("image_mc")
   image = []
   clip_to_remove = []
   thumbnails = []
   load_images(id)
}


Gracias por tu ayuda

Por psycho-vnz

Claber

1186 de clabLevel

7 tutoriales

Genero:Masculino  

firefox

 

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