Comunidad de diseño web y desarrollo en internet online

Problema con progressbar - queda siempre en 0%

Citar            
MensajeEscrito el 20 Mar 2008 04:27 pm
Tengo un problema con el componente progressbar de flash. Hace 3 dias que estoy dando vueltas aisque lo pregunto acá.
El problema es que me funciona únicamente si el Moviclip en donde voy a cargar el contenido lo creo mediante la función: CreateEmptyMovieClip. Pero yo necesito tenerlo creado en el escenario. Si lo hago con un mc que esté en el escenario la barra de progreso aparece pero queda en 0%.

Cree una función para hacer más simple la aplicación de un componente progressbar a cualquier movieclip, cuyo primer parámetro es el moviclip que cargará el contenido y el segundo es el lugar desde donde es llamado, osea: _root, this, _lavel0, etc.

Probablemente el código esté un poco desordenado y no sea nada optimo, esto es porque estuve haciendo muchísimas pruebas para ver si funcionaba y ahora estoy rendido.

Código :

function barraDeProgreso(elemento, desde)
{
      
      
      var cargando;   
      desde.attachMovie("ProgressBar", "barraCargando", 1);
      

      var my_lv:LoadVars = new LoadVars();
      loadvars_pb.mode = "manual";

      cargando = desde.barraCargando;
      cargando._y = 230;
      cargando._x = 14;
      cargando.direction = "rigth";
      cargando.conversion = 1024;
      cargando.label = "Cargando %1kb de %2kb";
      cargando.labelPlacement = "top";
      cargando.mode = "polled";
      cargando.source = elemento;
      

      //Listener para cuando esta cargando la imagen
      var alCargar = new Object();
      alCargar.onLoadProgress = function(evento) 
      {
         
         _root.mensaje.text = my_lv.getBytesTotal();
         cargando.setProgress(getBytesLoaded, getBytesTotal);
      };
      //Listener para cuando acaba de cargar la imagen
      var alAcabar;
      alAcabar = new Object();
      alAcabar.complete = function(evento) 
      {
         trace(_global.c++);
         _root.mensaje.text = _global.c++;
         removeMovieClip(cargando);
      };
      //Eventos
      cargando.addEventListener("progress", alCargar);
      cargando.addEventListener("complete", alAcabar);


}

Por matubaum

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Mar 2008 07:22 pm
El tema es que el Progressbar (como muchos otros componentes) necesitan inicializarse antes de que se le pasen parámetros, y como el código desde donde se hace el attach (el bloque entero) se ejecuta antes de que el componente esté inicializado, este simplemente ignora los parámetros. Un truco simple:

t = desde.attachMovie("ProgressBar", "barraCargando", 1);
vat interval = setInterval(function(cargandom elemento){
cargando.direction = "rigth";
cargando.conversion = 1024;
cargando.label = "Cargando %1kb de %2kb";
cargando.labelPlacement = "top";
cargando.mode = "polled";
cargando.source = elemento;
cargando.addEventListener("progress", alCargar);
cargando.addEventListener("complete", alAcabar);
}, 500, t, elemento)

Un pequeño delay antes de agregarle los settings y los listeners permite que el componente se inicialize

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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