Comunidad de diseño web y desarrollo en internet online

Loader unloadAndstop con btn

Citar            
MensajeEscrito el 08 Oct 2010 02:19 pm
Bueno, ya tengo el síndrome del no programador nato que se pasa a AS3.

El problema que tengo es en el momento de recargar contenido mediente loader con botones en una película principal.

Tengo unos cuantos botones que cargan los swf, pero no se eliminan los cargados.

Código ActionScript :

btn1.label = "Contenido 1";
btn1.addEventListener(MouseEvent.CLICK, loadContenido1);

function loadContenido1(event:MouseEvent):void
{

   var miLoader:Loader = new Loader();
   var contenidoUrl:String = "mc1.swf";
   var miRequest:URLRequest = new URLRequest(contenidoUrl);
   miLoader.load(miRequest);

   miLoader.addEventListener(Event.COMPLETE, cargado);
   miLoader.addEventListener(ProgressEvent.PROGRESS, enCarga);

   addChild(miLoader);

   function enCarga(event:ProgressEvent):void
   {
      porcentajetxt.text = Math.round(event.target.percentLoaded) + "%";
   }

   function cargado(event:Event):void
   {
      porcentajetxt.text = "";
   }
}


Todo esto funciona perfectamente, pero cuando vuelvo a clicar se vuelve a cargar el swf sin antes descargar el que ya había. Eso es un problema porque es video, y tengo que usar varios botones para cargar swf con diferentes videos.

Al buscar información sobre el tema descubrí unloadAndstop pero no sé como implementarlo. Si lo pongo justo antes de crear el new Loader me da error.

Resumiendo: clicar al boton se tiene que cargar el swf, al volver a clicarlo, se tiene que destruir el loader y volverse a crear para volver a cargar el swf. Con un boton o con varios.

:?

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 08 Oct 2010 02:38 pm
hola que tal...

Pues lo que veo por ahi es que cada vez que daz click creas un objeto loader intenta crear el objeto loader fuera y solo cambia el swf a cargar en el metodo load.

Por otra parte si esos swf que vas a cargar contienen un video te recomiendo que checes el evento REMOVED_FROM_STAGE para que se quite el video y no se quede el audio del video anterior por ahi bailando.

Saludos

Por elessar

Claber

166 de clabLevel



 

Tabasco, México

firefox
Citar            
MensajeEscrito el 08 Oct 2010 02:40 pm
Por otro lado saca los listeners del progreso de carga del loader y organiza un poquito mejor tu codigo.

Saludos

Por elessar

Claber

166 de clabLevel



 

Tabasco, México

firefox
Citar            
MensajeEscrito el 08 Oct 2010 03:14 pm
Gracias por tus sugerencias, pero eso ya lo probé y es lo mismo. Se carga, y se vuelve a recargar sin que el anterior desaparezca. si liquido, me da error de propiedad no existente. Miraré eso de REMOVED_FROM_STAGE, aunque ya probe con unloadAndStop removeChild, etc. :(

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 08 Oct 2010 03:21 pm
MMM intenta meter el miLoader en un MovieClip existente en el escenario algo, asi

clip.addChild(miLoader);

Por elessar

Claber

166 de clabLevel



 

Tabasco, México

firefox
Citar            
MensajeEscrito el 08 Oct 2010 03:23 pm
Y disculpa que sea tan insistente el objeto loader ponlo afuera y dentro de la funcion solo cambiar el valor del load

Por elessar

Claber

166 de clabLevel



 

Tabasco, México

firefox
Citar            
MensajeEscrito el 08 Oct 2010 04:25 pm
Master me tome la libertad de hacer un ejemplito lo puedes bajar de aqui ahi tambien coloco lo del removed_from_stage, te comento que por ahi hay que poner otra linea de codigo solo que de momento no me acuerdo, esoty en el work y aqui no tengo mis anotaciones.

link del ejemplo

saludos

P.D. avisame cuando lo allas descargado para que lo tumbe del server

Por elessar

Claber

166 de clabLevel



 

Tabasco, México

firefox
Citar            
MensajeEscrito el 08 Oct 2010 05:01 pm
Realmente agradecido, ya lo puedes quitar. :)
Me lo miro atentamente.

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 08 Oct 2010 05:03 pm
Enterado, espero te sirva.

Por elessar

Claber

166 de clabLevel



 

Tabasco, México

firefox
Citar            
MensajeEscrito el 11 Oct 2010 09:24 am
bueno, pues, seguiré investigando, porque por ahí van los tiros, pero aunque se quita el swf se sigue escuchando el vídeo. Tengo que eliminar el vídeo del "fondo". :cry:

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 11 Oct 2010 12:44 pm
Sisco, basado en el código que pones, para usar unloadAndStop debes primero tener algo cargado en el mismo. Lo que puedes hacer para hacertelo fácil es probar si tienes algo con un try (Aunque no sea idealmente correcto):

Código ActionScript :

try(){
   loader.unloadAndStop();
}
catch(){
  trace("Wow, aun no ha sido cargado");
}
finally(){
  // Código normal de load
}


Eso debería ser suficiente.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 11 Oct 2010 02:21 pm
Si checaste los archivos swf hijos que se cargan en el ejemplo que te pase, ahi uso el removed_from_stage con eso deberia de tronarse

Por elessar

Claber

166 de clabLevel



 

Tabasco, México

firefox
Citar            
MensajeEscrito el 11 Oct 2010 02:52 pm

elessar escribió:

Si checaste los archivos swf hijos que se cargan en el ejemplo que te pase, ahi uso el removed_from_stage con eso deberia de tronarse


Eso no líquida todos los eventos, sonidos, etc. O lo haces manualmente (Lo ideal) o usas unloadAndStop para pedirle al Garbage Collector que liquide todos los listeners, sonidos, etc que ha declarado un SWF.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 11 Oct 2010 03:47 pm
Master a mi me ha funcionado creo que el problema que tiene sisco es con el sonido unicamente del video...

o estoy equivocado Sisco?

Saludos.

Por elessar

Claber

166 de clabLevel



 

Tabasco, México

firefox
Citar            
MensajeEscrito el 13 Oct 2010 06:56 pm
Gracias pero como no he encontrado la forma correcta, he cambiado de estrategia. Lo que intentaré será recargar la info mediante XML, en el mismo swf, a ver si consigo mi objetivo.

;)

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox

 

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