Просмотр полной версии : как посчитать суммарный процент загрузки
benladen
27.11.2005, 01:48
несколько файлов я гружу одновременно. листнер мне говорит по очереди процент каждого загруженного файла, как эту всю мешуру в общий процент объединить?
loaderListener.onLoadProgress = function (holder1:MovieClip, loadedBytes:Number, totalBytes:Number){
можно, конечно, холдер слушать, но как его разделять.
подскажите, плиз.
есть такая вешь, которую прохзодят в 1-м или втором классе под названием "среднее арифметическое".
benladen
27.11.2005, 03:12
это все понятно, на скрипте как это зашарашить, не среднеарифметическое, а именно отслеживание, как я представляю, это гигантский скрипт получится, хотелось бы кратко и просто
т.е. мой вариант
проверка на 4 холдера по 2 раза(mc1,mc2 в каждом mc по 4 holdera), потом вывод среднеарифметического и передача его на изменения размера прогрессбара, потом обнуление и все заново
benladen
27.11.2005, 03:38
скажи просто, ты бы это через свитч делал или подругому?
мне интересны все варианты ...
benladen
27.11.2005, 04:26
пока сделал вот так: только циферки не сходятся при таком варианте
почему?
если вычислять процент в каждом кейсе - все окей, а если в конце скопом, то не дает он 100 процентов, только 43
switch(holder1) {
case slides_mc1.holder0:
allloadedBytes += loadedBytes;
trace ("allloadedBytes"+allloadedBytes);
alltotalBytes += totalBytes;
trace ("alltotalBytes"+alltotalBytes);
break;
case slides_mc1.holder1:
allloadedBytes += loadedBytes;
trace ("allloadedBytes"+allloadedBytes);
alltotalBytes += totalBytes;
trace ("alltotalBytes"+alltotalBytes);
break;
case slides_mc1.holder2:
allloadedBytes += loadedBytes;
trace ("allloadedBytes"+allloadedBytes);
alltotalBytes += totalBytes;
trace ("alltotalBytes"+alltotalBytes);
break;
case slides_mc1.holder3:
allloadedBytes += loadedBytes;
trace ("allloadedBytes"+allloadedBytes);
alltotalBytes += totalBytes;
trace ("alltotalBytes"+alltotalBytes);
break;
case slides_mc2.holder0:
allloadedBytes += loadedBytes;
trace ("allloadedBytes"+allloadedBytes);
alltotalBytes += totalBytes;
trace ("alltotalBytes"+alltotalBytes);
break;
case slides_mc2.holder1:
allloadedBytes += loadedBytes;
trace ("allloadedBytes"+allloadedBytes);
alltotalBytes += totalBytes;
trace ("alltotalBytes"+alltotalBytes);
break;
case slides_mc2.holder2:
allloadedBytes += loadedBytes;
trace ("allloadedBytes"+allloadedBytes);
alltotalBytes += totalBytes;
trace ("alltotalBytes"+alltotalBytes);
break;
case slides_mc2.holder3:
allloadedBytes += loadedBytes;
trace ("allloadedBytes"+allloadedBytes);
alltotalBytes += totalBytes;
trace ("alltotalBytes"+alltotalBytes);
break;
}
//trace ("allloadedBytes"+loadedBytes);
lo = allloadedBytes/8;
to = alltotalBytes/8;
var percent:Number = Math.round ((lo/to) *100);
сделай через массив. чтобы каждый элемент был процентом загрузки каждого холдера. и потом высчиываешь среднее арифметичесское всего массива.
События нужны... правильно, для их обработки. А чтобы обрабатывать было удобно, у них есть возвращаемые обработчику параметры. Их мы свитчим, и апдейтим определенный прелоадер (или что-то еще), передав, допустим, ссылку на прелоадер функции.
И никаких выкладок на 4 листа.
да зачем высчитывать когда у всех 4-х прогресс скакнейт. можно каждый раз при каждом событии апдейтить. либо апдетить при передаче прогреса последнего холдера.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.