функция запуска JavaScript с Adobe Air - PullRequest
1 голос
/ 05 июня 2011

Я работаю в Adobe Air с JavaScript и HTML. Я хочу запустить несколько функций в функции с показом процента выполнения каждой функции, но процент также показывает последний расчет, пожалуйста, помогите мне.

Редактировать : добавлен фрагмент кода из комментария, но, возможно, я выбил макет.

function show_percentage() {
 down_admin() 
 down_staff()
 down_client() }
function down_admin() { 
 down all information of admin from the server; flag=1; } 
function down_staff() {
 down all information of the staff falg=2; } 

мы хотим, чтобы расчет показывал каждую после загруженной функции. в процентах = от 25% до 100%

1 Ответ

0 голосов
/ 05 июня 2011

Если вы загружаете несколько типов информации и хотите показать итоговый прогресс, сначала вам нужно знать общее количество байт для каждой загрузки. Когда вы получаете 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 :)))

Я предполагаю, что вы сделаете один запрос для каждой из этих трех загрузок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...