Руководство по actionscript. часть 6, стр. 014

Мы уже знаем, как загружать и отображать внешний элемент, но зачастую в процессе загрузки элемента между этими двумя операциями существует заметная задержка. Далее мы рассмотрим, как использовать класс Loaderlnfo для отображения хода выполнения операции загрузки.

Отображение хода загрузки

Чтобы отобразить ход загрузки элемента, мы должны выполнить четыре следующих обобщенных шага.

1. Перед загрузкой элемента создать графический индикатор хода загрузки (например, текстовое поле или «индикатор загрузки»).

2. После начала загрузки добавить индикатор хода выполнения в список отображения.

3. По мере загрузки элемента обновлять состояние индикатора хода выполнения (по большому счету, это делается для удобства пользователя).

4. Когда загрузка будет завершена, удалить индикатор хода выполнения с экрана.

Посмотрим, как применить описанные шаги на практике, добавив простой индикатор хода выполнения, который реализован на базе текстового поля, в наш класс SunsetViewer.

Начнем с создания в классе SunsetViewer новой переменной экземпляра progressOutput, которая ссылается на обычный объект TextField. Текстовое поле progressOutput будет отображать информацию о ходе загрузки, private var progressOutput:TextField;

Далее мы создадим в классе SunsetViewer два новых метода: createPro gresslndicator ( ) и load ( ). Первый метод создает объект TextField progressOutput. Мы будем вызывать метод createProgressIndicator ( ) из конструктора класса SunsetViewer. Рассмотрим этот код:

private function createProgressIndicator ( ):void { progressOutput = new TextField( ); progressOutput. autoSi ze = TextFi eldAutoSi ze. LEFT; progressOutput. border = true; progressOutput. background = true; progressOutput. selectable = false; progressOutput. text = «LOADING…»;

}

Второй метод добавляет объект progre s sOutpu t в список отображения и начинает загрузку элемента. Всякий раз, когда с помощью метода load ( ) инициируется загрузка, объект progressOutput помещается на экран; всякий раз, когда загрузка завершается, объект progressOutput удаляется с экрана. Данная архитектура позволяет классу SunsetViewer повторно использовать один и тот же объект TextField для отображения информации о ходе загрузки. Рассмотрим код для метода load ( ):

private function load (urlRequest:URLRequest):void { // Начинаем загрузку loader. load(urlRequest);

// Если объект progressOutput еще не является потомком данного объекта… if (lcontains(progressOutput)) {

// …добавляем его

addChild(progressOutput);

}

}

В процессе загрузки мы ожидаем возникновения события ProgressEvent. PROGRESS, которое свидетельствует о появлении новой порции данных файла sunset. jpg и предоставляет самую последнюю информацию о ходе загрузки. Всякий раз, когда возникает событие ProgressEvent. PROGRESS, мы обновляем объект progressOutput. Получателем данного события является объект Loaderlnfo нашего загружаемого элемента. Как мы уже знаем, обратиться к объекту Loaderlnfo элемента можно через переменную экземпляра contentLoader Inf о класса Loader. Таким образом, чтобы зарегистрировать приемник для получения уведомлений о возникновении события ProgressEvent. PROGRESS, мы используем следующий код:

1oader. contentLoaderInfо. addEventLi stener(ProgressEvent. PROGRESS,

progressListener);

В приведенном коде progressListener— это ссылка на функцию, которую мы хотим выполнять при возникновении события ProgressEvent. PROGRESS. В функцию progressListener передается объект ProgressEvent, переменные которого содержат следующую информацию:

? размер файла загружаемого элемента (bytesTotal);

? количество байтов, полученных до настоящего момента (bytesLoaded).

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 22.07.2011">Светодиоды
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.17
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 090
  • 29.06.2012">Apple готовит крупное обновление для iTunes
  • 10.03.2011">Руководство по actionscript. часть 4, стр. 043
  • 06.03.2011">Руководство по actionscript. часть 4, стр. 135
  • 21.03.2011">Руководство по actionscript. часть 2, стр. 054
  • 04.03.2011">Руководство по actionscript. часть 5, стр. 043
  • 11.03.2011">Руководство по actionscript. часть 3, стр. 146
  • 06.03.2011">Руководство по actionscript. часть 4, стр. 148
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 098
  • 13.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.98
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 061
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 063
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 122
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...