Comunidad de diseño web y desarrollo en internet online

Videotutorial: Clase en AS3 para crear precargas

En este tutorial vamos a aprender como crear una clase que nos permita mostrar el progreso de carga del medio (ya sea el proyecto, imágenes, música, o swf externos), y representarlos con alguna barra de animación o texto.

Uno de sus usos comunes es la típica barra de cargando antes de que comience a reproducirse la animación.

Crear preloaders con clases en AS3, parte 1



Crear preloaders con clases en AS3, parte 2



Preload.as

Código :

package ar.com.lucasmoyano.preloads
{
   import flash.display.MovieClip;
   import flash.events.ProgressEvent;
   import flash.events.Event;
   import flash.text.TextField;
   
   
   public class Preload extends MovieClip
   {
      private var content:MovieClip;
      private var nameTextField:String;
      private var textType:uint;
      private var scene;
      private var percentLoaded:Number;
      private var frame:uint;
      
      public function Preload(_scene:*, _content:MovieClip = null, _nameTextField:String = "", _textType:uint = 0):void
      {
         addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
         scene = _scene;
         content = _content;
         nameTextField = _nameTextField;
         textType = _textType;
      }
      
      private function onAddedToStage(e:Event):void
      {
         removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
         scene.addEventListener (ProgressEvent.PROGRESS, onLoading);
         addChild(content);
      }
      
      private function onLoading(e:ProgressEvent):void
      {
         percentLoaded = e.bytesLoaded / e.bytesTotal;
         frame = Math.floor(percentLoaded * content.totalFrames);
         if (content != null)
         {
            content.gotoAndStop(frame);
         }
         if (nameTextField != "")
         {
            var aux:String;
            switch (textType)
            {
               case 1:
                  aux =  int(percentLoaded * 100) + "%";
                  break;
               
               case 2:
                  aux =  int(percentLoaded * 10000) / 100 + "%";
                  break;
               
               case 3:
                  aux =  e.bytesLoaded + "/" + e.bytesTotal + " bytes";
                  break;
               
               case 4:
                  aux =  int(e.bytesLoaded / 1024) + "/" + int(e.bytesTotal/1024) + " kb";
                  break;
               
               case 5:
                  aux =  int(e.bytesLoaded / 1048576 * 100) / 100 + "/" + int(e.bytesTotal / 1048576 * 100) / 100 + " mb";
                  break;
            }
            content[nameTextField].text = aux;
         }
         if (e.bytesLoaded == e.bytesTotal)
         {
            scene.removeEventListener (ProgressEvent.PROGRESS, onLoading);
            removeChild(content);
         }
      }
      
      public function get Content():MovieClip
      {
         return content;
      }
      
      public function set Content(value:MovieClip):void
      {
         content = value;
      }
      
      public function get PercentLoaded():Number
      {
         return percentLoaded * 100;
      }
      
      public function set PercentLoaded(value:Number):void
      {
         percentLoaded = value / 100;
      }
      
      public function get NameTextField():String
      {
         return nameTextField;
      }
      
      public function set NameTextField(value:String):void
      {
         nameTextField = value;
      }
      
      public function get TextType():uint
      {
         return textType;
      }
      
      public function set TextType(value:uint):void
      {
         textType = value;
      }
   }
}


Archivos del Tutorial:
http://www.megaupload.com/?d=Y30TSVHY

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate