PDA

Просмотр полной версии : Прелоадер. Шо, опять?


Aloneman
16.07.2003, 13:21
У меня следующий вопрос. Почему


siteLoad = Math.round((_framesloaded/_totalframes)*100);


возвращает значения 33, 50, 75... а не поочередные от 0 до 100 по одному? Это всегда так, и как-нибудь сие чудо обходится? А то в большинстве случаев предлагают заводить дополнительный счетчик, который будет сам по себе и иногда сверяться с этими значениями 33,50,75, не убежал ли он вперед. Что всегда криво и все такое...

Получается, что в коде полоска (клип loader) увеличивается по ширине сама по себе, и даже не до конца, потому как последнее значение, по которой она сверяется - это 75 и потом вообще перескакивает в 4ый кадр.


//1 кадр

if (_totalframes == _framesloaded) { gotoAndPlay(4); }
var siteLoad;
var loadLine = 1;
loader._xscale = 0;

//2 кадр

siteLoad = Math.round((_framesloaded/_totalframes)*100);

if (loader._xscale < siteLoad) {
loader._xscale = loadLine;
loadLine++;
}

//3 кадр

siteLoad < 100 ? gotoAndPlay(2) : gotoAndPlay(4);

Dimonius
16.07.2003, 13:29
Попробуй потестить на низких скоростях

Aloneman
16.07.2003, 13:53
Я тестил на низких, жал два раза Ctrl+Enter и там выбирал 28 или 50 кб/с. Эффект такой, линия плавно увеличивается, потом останавливается на 33 процентах и ждет, потом плавно продолжает увеличиваться дальше. В итоге она останавливается на 75 процентах от размера и пропадает. Вот такие пироги. :rolleyes:

Useless
16.07.2003, 14:36
Вместо loadLine используй siteLoad.

Только siteLoad++ делать не надо.

Aloneman
16.07.2003, 14:45
если не вводить loadLine, то в этом случае полоска не будет плавно увеличиваться. А будет увеличиваться рывками. И поблему, мной описанную, это не решает, к сожалению.

Useless
16.07.2003, 15:28
Тебе что нужно-то?

Чтоб полоска плавно увеличивалась, или чтоб она загрузку показывала?

В любом случае, вместоsiteLoad = Math.round((_framesloaded/_totalframes)*100);, лучше использоватьsiteLoad = Math.round( ( getBytesLoaded() / getBytesTotal() ) * 100 );

Aloneman
16.07.2003, 15:45
Теперь все арбайтен как нада!! Спасибо! :)