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

Por lucasmoyano el 04 de Enero de 2011
Por gueivan el 13 de Diciembre de 2011