Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Прелоадер. Шо, опять? (http://www.flasher.ru/forum/showthread.php?t=46886)

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

Так вот где собака порылась!
 
Теперь все арбайтен как нада!! Спасибо! :)


Часовой пояс GMT +4, время: 19:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.