Если вы загружаете несколько типов информации и хотите показать итоговый прогресс, сначала вам нужно знать общее количество байт для каждой загрузки. Когда вы получаете ProgressEvent от каждой операции, вы можете вызвать функцию show ():
function show() {
var progress = (adminBytesLoaded + staffBytesLoaded + clientBytesLoaded) * 100 /
(adminBytesTotal + staffBytesTotal + clientBytesTotal);
//show progress somehow
}
Обновление: некоторые уточнения
Загрузите нужный вам ресурс с помощью Loader. Добавьте прослушиватель событий в ProgressEvent на Loader.contentLoaderInfo. Будет три слушателя для трех операций загрузки - загрузка данных администратора, данных клиента и данных персонала. Когда вы получаете событие прогресса от каждой операции (отслеживаете его тремя переменными), вы будете знать общий размер загрузки:
var adminTotal:int;
var clientTotal:int;
var staffTotal:int;
var adminLoaded:int;
var clientLoaded:int;
var staffLoaded:int;
function onAdminLoadProgress(event:ProgressEvent):void
{
adminLoaded = event.bytesLoaded;
adminTotal = event.bytesTotal;
//if other operations already going, show progress
if (clientTotal && staffTotal)
{
showProgress();
}
}
function onClientLoadProgress(event:ProgressEvent):void
{
clientLoaded = event.bytesLoaded;
clientTotal = event.bytesTotal;
if (adminTotal && staffTotal)
{
showProgress();
}
}
//write onStaffLoaded yourself as an exercise :)))
Я предполагаю, что вы сделаете один запрос для каждой из этих трех загрузок.