Форум 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=40099)

Supnabor 26.11.2002 07:23

Неординарная ситуация с прелоадером...
 
Уважаемый ALL.

Помогите с прелоадером. Сразу скажу перечитал все топики про него. Сам делал простые варианты но вот теперь столкнулся с магическим getBytesLoaded and getBytesTotal и никак не могу решить следующую проблему.

Дано: Делаю слайдшоу в котором мне нужно взять из массива имена файлов и загрузить их в мувиклипы. А именно, я делаю один базовый мувиклип в который кладу "таргет", потом иду по массиву и каждый раз дублируя мувиклип загружаю JPG в таргет.

Вопрос о том как мне показать процесс загрузки каждого JPG? Я в клипе "тот что по умолчанию" на таргет навесил скрипт который берет getBytesTotal, и getBytesLoaded так вот как только я делаю таргет.loadMovie("JPG") я сразу получаю что loaded = total = 15Kb or 20Kb в зависимость от размера JPG.

Может не там или не то делаю? А?

Supnabor 26.11.2002 20:11

Vidimo nikto ne znaet, ili tak nel'zya sdelat'? :(

Philarmon 01.12.2002 19:17

Да нет, всё можно сделать, только непонятно, что надо :)). Может, скрипт выложишь ?

JeeP 02.12.2002 03:58

я знаю что в последних версиях flash плеера появился баг, а именно:
при подгрузке именно JPG файлов, метод getBytesLoaded не
работает, хотя getBytesTotal работает. :(

Philarmon 02.12.2002 05:05

Ты не у себя на компутере всё это тестишь, надеюсь ? :) А то тогда конечно сразу будет показывать. Попробуй использовать действительно большую (500 KB) картинку - что он на это скажет ? Если опять сразу, что всё давно загружено, то ошибка, по-моему, только в коде прелоадера может быть - проверь, когда писал getBytesTotal, не скопировал ли ты его случайно с getBytesLoaded и забыл изменить? Было бы getBytesTotal / getBytesTotal * 100 = 100 :)

Всё, больше не знаю почему такое может быть - сдаюсь :)
Philarmon

Alexey (G-fi) 02.12.2002 11:09

Jeep прав...
Мало того, уточню: даже getBytesTotal работает не так, как с swf: например, загружаешь десять jpg-ов. Когда первый загружается, он (ОН – getBytesTotal) не показывает его размера, а когда первый уже, и загружается второй, ОН показывает размер первого и т.д.

В общем, х..рня какая-то.
:(

:)

Supnabor 02.12.2002 20:26

Nu horosho, sdelau ya eti JPG SWF-kami i budu gruzit' swf. No vot mozgi u menya skrutilo vidimo i ya nikak ne poimu a kak mne moi cikl kotorii idet po massivu tormoznut' na moment zagruzki... :rolleyes:

for(i=1; i < imageSrc.length; i++){
imageZone.duplicateMovieClip("iz"+i,10+i);
imageZone = this["iz"+i];
imageZone.loadZone.loadMovie(imageSrc[i]);
}
Eto bil moi cikl dublirovaniya i zagruzki.

Teper' mne nuzno vstavit' tuda zaderzhku. Tak vot ya ne poimu chto mne i kuda polozhit'. Ya mogu povesit' na sobitie onEnterFrame proverku na zagruzku moih swf files, no vot kak etot rezul'tat proverki sovmestit' s ciklom zagruzki nikak ne mogu v tolk vzyat'.

Ideya to prostaya:
1) Vzyat' imya file iz massiva
2) produblirovat' movieclip
3) zagruzit' swf-file v poluchivshiysya movieclip
4) podozhdat' poka zagruzitsya
5) pereiti k punktu 1

No vot ne vihodit kamenniy cvetok...

Supnabor 03.12.2002 09:17

;) ну вот и заработало оно.

Вобщем сделал я свой прелоадер. И он хорошо работает с JPG. И даже не знаю что вам сказать по поводу того что getBytesLoaded() and getBytesTotal() плохо работают с JPG.

Работают отлично, особенно если проверять по dial-up или чуть побыстрее.
Так что если есть вопросы, задавайте.

Alexey (G-fi) 03.12.2002 13:49

...дык поделись... :rolleyes:



... почитаем, поучимся :p :D :D

Supnabor 05.12.2002 07:40

Вобщем все проще пареной репы оказалось.... Легко теперь говорить :p

Вобщем в первом и единственном фрейме делаю загрузку картинки в мувиклип и присваиваю флажку готовность отслеживать загрузку.

imageZone.loadMovie("/test.jpg");
loading = 1;

далее делаю функцию

_root.onEnterFrame = function(){
if(loading == 1){
total = imageZone.getBytesTotal();
loaded = imageZone.getBytesLoaded();
percentage = int(loaded/total*100);
preloader.gotoAndStop(percentage);
if( loaded == total and loaded > 4){
loading = 0;
}
}
}

preloader - это мувик на 100 кадров, в котором по таймфрейму движется указатель.


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

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