Comunidad de diseño web y desarrollo en internet online

Problema en Precarga el showProgress solo se hace 1 vez

Citar            
MensajeEscrito el 12 Feb 2009 02:58 am
Hola a todos!

1) Estoy implementando una precarga, en el Document Class el problema radica en que la function showProgress(event:ProgressEvent), solo se ejecuta una sola vez y no puedo ver el avance de la carga.

2) El archivo swf de 525KB, aproximadamente se tarda unos 5 segundos en cargarse.

3) La linea de tiempo principal no tiene código y no tiene información.

4) Todas la información esta en la bibiloteca y se accesa a través del Document Class.

5) El Dclass_main.as tiene lo siguiente:

Código :

package {
    import flash.display.*;
    import flash.events.*;
    import flash.text.TextField;
    import flash.text.TextFormat;
   
    public class Dclass_main extends MovieClip {
        public var loadBar:Sprite;
        public var fig:Shape = new Shape;
        public var _tf:TextField;
        public var _fmt:TextFormat;

        public function Dclass_main() {
             prepara_info();       
             //Events
             this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, showProgress);
             this.loaderInfo.addEventListener(Event.COMPLETE, initApplication);
      
             trace ("this: " + this);    // SALIDA -> this: [object Dclass_main].
        }
      
        public function showProgress(event:ProgressEvent):void {
            var cargado:int = event.bytesLoaded;
            var total:int = event.bytesTotal;
            var porcentaje:int = cargado/total*100;
      
           trace("Bytes Cargados: " + cargado);  // Salida -> Bytes Cargados: 537377
           trace("Bytes Total: " + total);            // Salida -> Bytes Total:      537377     
           trace(porcentaje); // Salida: 100%

            //LoadBar
            with (loadBar.graphics) {
                clear();   
                beginFill(0xff0000);
                drawRect(11,stage.stageHeight-19,3*porcentaje-2,8);
                endFill();
            }
            
            //Text
            _tf.text = "Cargando: "+ porcentaje + " %";

        }

       function prepara_info():void {
            loadBar = new Sprite();
            addChild(loadBar);

            //Draw Bound
            with (this.graphics) {
                beginFill(0x0000ff);
                drawRect(10,stage.stageHeight-20,300,10);
                endFill();
             }
           
            //Text
            _fmt = new TextFormat("_sans", 11, 0x0000ff);
            _tf = createText();
            addChild(_tf);
            _tf.x = 9;
            _tf.y = stage.stageHeight - 40;
            _tf.text = "Cargando: 0 %";
        }

        public function createText():TextField {
            var t:TextField = new TextField();
            t.width = 0;
            t.height = 0;
            t.autoSize = TextFieldAutoSize.LEFT;
            t.selectable = false;
            t.defaultTextFormat = _fmt;
            return t;
        }

        public function initApplication(event:Event):void {
            
            //Clean
            this.graphics.clear();
            loadBar.graphics.clear();
            _tf = null;
            
            // Continua con el programa
               ....
               ....
               ....
       }


El programa no marca error
El problema es que no veo el avance de la carga (porcentaje 10%, 20%, 30%, 40%, etc) la función de showProgress, solo se ejecuta una sola vez y se observa por que al desplejar la información el porcentaje es del 100%:


trace("Bytes Cargados: " + cargado); // Salida -> Bytes Cargados: 537377
trace("Bytes Total: " + total); // Salida -> Bytes Total: 537377
trace(porcentaje); // Salida: 100%


De antemano muchas gracias por su atención, culaquier sugerencia es bien recibida.
Saludos

Por lororojo

52 de clabLevel



 

msie7
Citar            
MensajeEscrito el 12 Feb 2009 10:07 am
Pruébalo desde el servidor, no en local, donde el tiempo de precarga es nulo. Sino selecciona "Simulate download" cuando publicas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Feb 2009 03:51 pm
Jorge, gracias por tu ayuda.

1) En el servidor no se logra ver el porcentaje de carga, ni el avance de la barra.
Ya que el progress solo se esta llamando 1 solo vez al estar al 100% e inmediatamente carga la aplicación.

Esto se observa, si quito el evento COMPLETE, el progress solo despliega 1 sola vez "cargando : 100%" y la barra completa.

2) Lo mismo ocurre en forma local al configrar la descarga en T1 (131.2 KB/s) y dar simular descarga.

Por lororojo

52 de clabLevel



 

msie7
Citar            
MensajeEscrito el 12 Feb 2009 03:59 pm
A la carga completa de la aplicación le toma 5 segundos aproximadamente

Por lororojo

52 de clabLevel



 

msie7
Citar            
MensajeEscrito el 13 Feb 2009 10:24 am
Puede que por algún motivo tu servidor no envíe los encabezados de tamaño. Usa un Timer para llamar a la función showProgress (cambia el argumento de ShowProgressEvent a Event) cada 1/2 segundo una vez que empiezas a cargar. Chequea si los valores son coherentes o se queda estancado

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Nov 2009 10:53 pm
si estas obteniendo los elementos de la biblioteca por vectores que sean tardan en cargar y por eso no vez la carga necesitas importarlos en tu primer fotograma en algun lugar no visible y desmarcarles la casilla "cargar en primer fotograma"


saludos
www.miactionscript.com

Por MiactionScript

77 de clabLevel



 

chrome

 

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