Руководство по actionscript. часть 6, стр. 016
Private function completeListener (e:Event):void { • // Удаляем индикатор хода выполнения removeChild(progressOutput);
}
Наконец, чтобы облегчить повторное использование кода и упростить его чтение, мы переместим наш код для создания объекта Loader и код, регистрирующий приемники событий, в новый метод createLoader ( ), представленный ниже. Обратите внимание, что код в этом методе регистрирует приемники не только для событий ProgressEvent. PROGRESS и Event. COMPLETE, но и для события Event. INIT, которое было рассмотрено ранее в подразд. «Обращение к загруженному элементу». Как и раньше, мы помещаем наш загруженный элемент в список отображения при возникновении события Event. INIT. Рассмотрим код для метода createLoader ( ):
private function createLoader ( ):void { // Создаем объект Loader loader = new Loader( );
// Регистрируем приемники для событий
1oader. contentLoaderInfо. addEventLi stener(ProgressEvent. PROGRESS, progressListener);
1oader. contentLoaderlnfо. addEventLi stener(Event. COMPLETE, completeLi stener); 1oader. contentLoaderlnfo. addEventLi stener(Event. INIT, i nitLi stener);
}
Код, который удаляет индикатор хода выполнения из списка отображения (в нашем примере он представлен методом completeListener ( ) ), должен всегда использовать событие Event. COMPLETE вместо Event. INIT. Не путайте эти два события. Событие Event. INIT выражает качественное состояние «готовности элемента», а событие Event. COMPLETE — количественное состояние завершения загрузки. Событие Event. INIT обозначает, что элемент готов к использованию, даже если — в случае SWF-файла — загрузка еще продолжается. В отличие от этого, событие Event. COMPLETE свидетельствует о получении всех байтов файла, содержащего элемент.
^ I Используйте событие Event. INIT, чтобы определить момент, когда можно благополучно А щ обращаться к элементу. Применяйте событие Event. COMPLETE, чтобы определить момент З?-’ завершения операции загрузки.