PDA

Просмотр полной версии : как посчитать суммарный процент загрузки


benladen
27.11.2005, 01:48
несколько файлов я гружу одновременно. листнер мне говорит по очереди процент каждого загруженного файла, как эту всю мешуру в общий процент объединить?

loaderListener.onLoadProgress = function (holder1:MovieClip, loadedBytes:Number, totalBytes:Number){

можно, конечно, холдер слушать, но как его разделять.
подскажите, плиз.

ffffff
27.11.2005, 02:05
есть такая вешь, которую прохзодят в 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);

ffffff
27.11.2005, 04:43
сделай через массив. чтобы каждый элемент был процентом загрузки каждого холдера. и потом высчиываешь среднее арифметичесское всего массива.

Antares
27.11.2005, 05:15
События нужны... правильно, для их обработки. А чтобы обрабатывать было удобно, у них есть возвращаемые обработчику параметры. Их мы свитчим, и апдейтим определенный прелоадер (или что-то еще), передав, допустим, ссылку на прелоадер функции.

И никаких выкладок на 4 листа.

ffffff
27.11.2005, 05:44
да зачем высчитывать когда у всех 4-х прогресс скакнейт. можно каждый раз при каждом событии апдейтить. либо апдетить при передаче прогреса последнего холдера.