ActionScript3: Создание расширенного загрузчика (Loader)
ActionScript3 предоставляет нам отличный инструмент для загрузки всякой всячины (jpg, png, swf). И реализован он в виде класса Loader.
Для того чтобы получить к нему доступ не забудьте добавить в ваш код строку:
import flash.display.Loader;
Loader или по-русски загрузчик реализует массу полезных возможностей. Если Вы активный ActionScript-программист, то частота его использования Вам известна.
Поэтому актуальна некоторая его доработка дабы упростить процесс и уменьшить объем нашего кода.
Далее по тексту пример класса расширенного загрузчика, который реализует следующие возможности.
- Загрузка начинается в момент создания объекта
- Стандартная обработка по завершении загрузки
- Стандартная обработка ошибки
package {
import flash.display.Loader;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLRequest;
public class XLoader extends Loader {
public var loaded:Boolean;
private var func:Function;
public function XLoader(_path:String,_func:Function=null) {
func = _func;
contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded);
contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,onError);
load(new URLRequest(_path));
}
private function onLoaded(e:Event):void {
loaded = true;
//Запускаем функцию полученую при создании объекта
if (func != null) {
func();
}
//Убиваем ожидание событий чтобы не грузить оперативку
contentLoaderInfo.removeEventListener(Event.COMPLETE,onLoaded);
contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,onError);
}
private function onError(e:IOErrorEvent):void {
trace("XLoader Error: " + e.text);
//Убиваем ожидание событий чтобы не грузить оперативку
contentLoaderInfo.removeEventListener(Event.COMPLETE,onLoaded);
contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,onError);
}
}
}
