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

Поскольку некоторые типы элементов могут быть проинициализированы до того, как будут полностью загружены, событие Event. INIT всегда возникает перед событием Event. COMPLETE. Предположим, что мы загружаем SWF-файл, представляющий анимацию из 2000 кадров. Когда первый кадр будет загружен и проинициализирован, возникнет событие Event. INIT. В этот момент мы добавляем анимацию в список отображения и разрешаем начать ее воспроизведение, хотя загрузка SWF-файла все еще продолжается. По мере загрузки SWF-файла индикатор будет представлять ход выполнения данной операции. Когда загрузка SWF-файла будет завершена, возникнет событие Event. COMPLETE и мы удалим индикатор загрузки с экрана.

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

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

package { import flash. display.*; import flash. net. URLRequest; import flash. events.* import flash. text.*;

public class SunsetViewer extends Sprite { private var loader:Loader; // Загрузчик элемента

private var progressOutput:TextField; // Поле, в котором будет

// отображаться ход загрузки

// Конструктор

public function SunsetViewer ( ) { // Создаем объект Loader и регистрируем приемники событий createLoader( );

// Создаем индикатор хода выполнения createProgressIndicator( );

// Начинаем загрузку

load(new URLRequestC»sunset. jpg»));

}

private function createLoader ( ):void { // Создаем объект Loader loader = new Loader( );

// Регистрируем приемники для событий

1 oader. contentLoaderInfo. addEventLi stener(ProgressEvent. PROGRESS, progressListener);

1 oader. contentLoaderInfо. addEventLi stener(Event. COMPLETE, completeLi stener); 1 oader. contentLoaderlnfо. addEventLi stener(Event. INIT, i ni tLi stener);

}

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…»;

}

private function load (urlRequest:URLRequest):void { loader. load(urlRequest); if (lcontains(progressOutput)) {

addChild(progressOutput):

}

}

// Приемник вызывается, когда появляются данные private function progressListener (е:ProgressEvent):void { // Обновляем индикатор хода выполнения. progressOutput. text = «LOADING: «

+ Math. floor(e. bytesLoaded / 1024)

+ «/» + Math. floor(e. bytesTotal / 1024) + » KB»;

}

private function initListener (e:Event):void { addChilddoader. content); // Добавляем загруженный элемент в список

// отображения

}

// Приемник вызывается, когда загрузка элемента полностью завершена private function completeListener (e:Event):void {

// Удаляем индикатор хода выполнения.

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

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

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

Полезные ссылки
Случайные записи
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 039
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 079
  • 14.03.2011">Руководство по actionscript. часть 3, стр. 080
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 114
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.32
  • 05.11.2011">Как сделать кнопку для сайта
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.95
  • 05.03.2011">Руководство по actionscript. часть 5, стр. 020
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 051
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.69
  • 21.03.2011">Руководство по actionscript. часть 2, стр. 053
  • 18.02.2011">Вырезание объекта с помощью фильтра в Photoshop
  • 04.03.2011">Руководство по actionscript. часть 5, стр. 050
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 080
  • 07.03.2011">Руководство по actionscript. часть 4, стр. 114
Опрос

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

View Results

Loading ... Loading ...