Ejemplo de Preload en Actioncsript 3

Posted by admin | AS3, Avanzado | Sunday 5 November 2006 7:02 pm

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. onReleaseOutside, onDragOut, onDragOver en ActionScript 3

2 Comments »

  1. Comment by Jorge — 30 November, 1999 @ 12:00 am

    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. Comment by francisco — 30 November, 1999 @ 12:00 am

    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();

RSS feed for comments on this post. TrackBack URI

Leave a comment

Get Adobe Flash playerPlugin by wpburn.com wordpress themes