Ejemplo de Preload en Actioncsript 3

November 5th, 2006 Posted in AS3, Avanzado

Esta clase que he montado permite crear un sencillo preload para la linea de tiempo principal de un swf en AS3.

package preloads
{
    import flash.display.Stage;
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.text.TextField;
    import flash.events.*
    //——————————————–
    public class PreloadBasico extends MovieClip
    {
        private var texto:TextField;
        private var marco:Shape;        
        private var barra:Shape;
        //—————————————-
        public function PreloadBasico ()
        {   
            dibujaPreload();
            posicionaPreload();
            this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadProgress);
            this.loaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);        
            //—————————————-
            function onLoadProgress (event:ProgressEvent):void
            {
                var cargado:int = event.bytesLoaded;
                var total:int = event.bytesTotal;
                var porcentaje:int = cargado/total*100;
                texto.text = "Cargado: "+String(porcentaje)+"%";
                barra.width = porcentaje*marco.width/100;
            }
            //—————————————-
            function onLoadComplete (event:Event):void
            {
                removeChild(texto);
                removeChild(marco);
                removeChild(barra);
                nextFrame();
            }
            //—————————————-
        }
        //—————————————-
        public function dibujaPreload() {
            texto = new TextField();
            marco = new Shape();
            barra = new Shape();
            marco.graphics.lineStyle(1, 0×000000);
            marco.graphics.drawRoundRect(0, 20, 70, 5, 0);
             barra.graphics.beginFill(0×000000);
             barra.graphics.drawRect(0, 20, 70, 5);
             barra.graphics.endFill();    
            addChild(texto);
            addChild(marco);
            addChild(barra);
        }
        //—————————————-
        public function posicionaPreload() {
            texto.x = marco.x = barra.x = stage.stageWidth /2 – marco.width /2
            texto.y = stage.stageHeight /2 – texto.height /2
            marco.y = barra.y = texto.y + 5
        }
        //—————————————-
    }
}

En el foro de cristalab escribí un poco de explicación de su uso, asi que no volveré a escribirlo U_U. Podeis encontrarla aqui.

Y aqui el ejemplo.

Comparte:
  • Meneame
  • Twitter
  • Facebook
  • Google Bookmarks
  • del.icio.us
  • Technorati
  • email
  • Print

Post relacinonados:

  1. Cómo duplicar MovieClips con gráficos en ActionScript 3
  2. Clase para dibujar líneas de puntos en ActionScript 3
  3. Comunicación entre clases Actionscript 3 con EventDispatcher
  4. Clase para cargar contenido externo en Actionscript 3
  5. Precargas múltiples de SWF y JPG simultanea en un sólo preload

2 Responses to “Ejemplo de Preload en Actioncsript 3”

  1. Jorge Says:

    Hola, funciona de maravilla, pero algo extraño que note fue que cuando se actualiza la página, no se muestra la animacion sino se queda mostrando solo la barra del preloader al 100%.


  2. francisco Says:

    Hola jorge, para que no te pase eso pon en el primer frame de tu animación:
    if(this.loaderInfo.bytesLoaded == this.loaderInfo.bytesTotal)
    this.nextFrame();


Leave a Reply