Класс flash.display.Loader используется для загрузки *.swf файлов, а так же для загрузки картинок(jpeg, gif и png), для начала загрузки используйте метод load(), загруженный объект добавится в список детей экземпляра Loader, так же в данном классе есть свойство contentLoaderInfo ( экземляр класса flash.display.LoaderInfo ), которое содержит в себе данные, которые нам могут понадобиться для прелоадера (на самом деле свойства данного класса, могут дать нам практически исчерпывающую информацию о контенте, например версию ActionScript и тд).
Пример
Код:
package {
//импортируем нужные нам классы
import flash.display.Sprite; // это базовый класс для нашего root'а
import flash.display.Loader; // в экземпляр данного класса будем грузить картинку
import flash.display.LoaderInfo; // из экземпляра данного класса, будем брать информацию
import flash.text.TextField; // в текстовом поле, будем отображать процесс загрузки
import flash.text.TextFieldAutoSize; // тут константы вариантов значения свойства textField.autoSize
import flash.net.URLRequest; // экземпляр данного класса, будет хранить в себе адресс картинки
import flash.events.Event; // это событие
import flash.events.ProgressEvent;
public class Test extends Sprite {
//создаем экземпляр Loader
private var loader:Loader = new Loader();
//создаем экземпляр TextField
private var loadStatus:TextField = new TextField();
//создаем экземпляр URLReques
private var request:URLRequest = new URLRequest("img.jpg");
// конструктор
public function Test() {
//Начинаем загрузку
loader.load(request);
// подписываем обработчики события
loader.contentLoaderInfo.addEventListener(Event.OPEN,displayPreloader);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,updatePreloader);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,displayImage);
}
//наши обработчики событий
private function displayPreloader(evt:Event):void {
//добавляем текствое поле
loadStatus.autoSize = TextFieldAutoSize.LEFT;
addChild(loadStatus);
}
private function updatePreloader(evt:ProgressEvent):void {
//изменяем информацию в процессе загрузки
loadStatus.text = "loaded:"+evt.bytesLoaded+" from "+evt.bytesTotal;
}
private function displayImage(evt:Event):void {
//удаляем текстовое поле, и добавляем само изображение
removeChild(loadStatus);
addChild(loader);
}
}
}