Создание расширенного загрузчика (Loader)

? к списку уроков

ActionScript 3 предоставляет нам отличный инструмент для загрузки всякой всячины (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);
    }
  }
}

ДРУГИЕ УРОКИ ПО ActionScript 3