PDA

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


Couch
20.08.2008, 16:44
У меня есть набор картинок которые подгружаются из внешних файлов.
Проблемма такая :
1.Как сделать одну общую загрузку для этой системы ?

MrPoma
20.08.2008, 16:58
MovieClipLoader, XML

Psycho Tiger
20.08.2008, 17:36
Ок, тогда расширю этот вопрос: (самому хотелось бы знать)
Имеем N картинок, каждая со своим размером, который я не знаю.
Реально ли без внешней помощи сделать один общий прелоадер?
То есть узнать размер файла, сформировать список и начать загружать?
С "узнать размер файла" как раз и есть проблемки, можно начать загрузку, получить размер и убить её, но сами понимаете, верх кривости...
Вобщем, какие варианты?

MrPoma
20.08.2008, 19:17
Можно грузить по одной и писать: "загружено 10% картинок" :D

BBOY Ильич
20.08.2008, 19:41
А почему бы не сделать общий bytesTotal, где будет находится сумма всех bytesTotal картинок, а потом будем делить такой же общий bytesLoaded на этот bytesTotal...

Psycho Tiger
20.08.2008, 19:49
В том то и дело, откуда ты возьмешь bytesTotal?

BBOY Ильич
20.08.2008, 20:28
ну может как-нибудь так...

MANN
21.08.2008, 03:16
1
кинуть картинки в библиотеку, повесить их на левый фрейм с прелоудером
ll
2
вручную посмотреть скоко весят картинки а потом эту цифру вместо bytesTotal
?

_______
у меня косвенный вопрос. Я кинул на сайт swf кодорый должен загружает картинки, но он их не загружет как будто их там нету. И такое только на серве! ):
-- оказивается картинка у меня називается *.JPG а путь к ней *.jpg

Psycho Tiger
21.08.2008, 09:53
1
кинуть картинки в библиотеку, повесить их на левый фрейм с прелоудером
ll
2
вручную посмотреть скоко весят картинки а потом эту цифру вместо bytesTotal
?

_______
у меня косвенный вопрос. Я кинул на сайт swf кодорый должен загружает картинки, но он их не загружет как будто их там нету. И такое только на серве! ):
-- оказивается картинка у меня називается *.JPG а путь к ней *.jpg

Они грузятся извне, я не знаю сколько они весят, я знаю лишь их имена. Задача: перед загрузкой понять, сколько же они весят.
2 BBOY Ильич - сейчас поставлю флэш и посмотрю...

Couch
26.08.2008, 17:47
Спасибо вам всем за ваши сообщения.
Посмотрел пример от BBOY Ильич. Проблема еще в том что я не использую xml (слишком много кода непонятного), у меня вот такая комманда для загрузки каждой картинки -
//
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip("image_1.jpg", container);

И еще если закачать файл BBOY Ильич на сайт будут ли картинки записываться в кэш или будут грузиться заново всякий раз когда пользователь посетит первый кадр ?

BBOY Ильич
26.08.2008, 18:36
просто поправьте немного вызов прототипа, изменив параметр url на нужный вам.
кэшироваться по идее должно, если не отключено в браузере...

Couch
23.09.2008, 23:00
Все пытаюсь разобраться. BBOY Ильич у вас в примере все грузиться в первом кадре, если перествавить мувиклип в другой кадр то он не грузиться.Можно ли сделать только одну загрузку в первом кадре, которая загрузит все из других кадров ?

BBOY Ильич
23.09.2008, 23:36
не понял... флеш грузит тот кадр, где находится. как можно загрузить чтото, уже находящееся во флеше+на другом кадре?

MrPoma
24.09.2008, 00:41
Couch, надо без кадров делать ;)

AlexCooper
24.09.2008, 05:34
а что проблема объявить переменую где инкрементировать все bytesTotal`лы???

AlexCooper
24.09.2008, 05:43
не понял... флеш грузит тот кадр, где находится. как можно загрузить чтото, уже находящееся во флеше+на другом кадре?

просто. Кидаешь к примеру все картинки во второй кадр. В настройках публикации swf есть кнопочка ActionScript Settings и в поле Export frame for classes ставишь цифорку 2. На первом кадре размещаешь прелоадер который после загрузки перепрыгует 2-й кадр. И любуешься=)

BBOY Ильич
24.09.2008, 09:09
Дык при чем тут тогда загрузка картинок извне?

AlexCooper
25.09.2008, 00:33
флеш грузит тот кадр, где находится. как можно загрузить чтото, уже находящееся во флеше+на другом кадре
непричём это просто ответ на Ваш вопрос)

Couch
27.09.2008, 20:09
Проще говоря задача такая:
1. Заходим на сайт - видим загрузку.
2. Видим на сайте картинку (которая была загружена извне через xml)
3. Нажимаем на кнопку переходим на другую картинку(которая была загружена извне через xml)

Maxio
28.09.2008, 04:29
Ну теоретически может сработать такое:
зашибаешь все клипы, в которые будешь грузить картинки, в массив. Далее всем запускаешь загрузку. Ну и далее с нужной частотой проходишь по этому массиву, суммируя getBytesTotal каждого, и getBytesLoaded каждого. Для достоверности данных можно проценты начать показывать только тогда, когда каждый ролик будет уже возвращать getBytesTotal. А до этого момента показывать что-то типа "Ждите, инициализация"! ну как-нибудь по-умному ))

AlexCooper
29.09.2008, 03:23
Я незнаю может быть не кстати напишу но я всегда пытаюсь скрыть загрузку от пользователя, тоесть подгружать в "теневом" режиме.
Тоесть грузануть сначало интерфейс и "высветить" его, потом подгрузить первую картинку>высветить, потом те что находяться побокам, ипотом так по очерёдности. Это просто несильно будет перенапрягать пользователя в ожидании. Но конечно проверочку перед переходом на следующею картинку нужно поставить. А для уведомления сделать статус-бар где-нить в правом нижнем углу и показывать сколько скачанно, сколько хочеть скачаться и статус текущей закачки к примеру
Скачанно: 31% 4024bytes
В ожидании: 14234bytes
Текущее скачивание: 15% 150bytes/1000bytes
А эт реализовать просто, при создании иксемеля добавите поле со значением битража.
При парсе все данные кидаете в массив соответсвенно можно будет подсчитать общий вес. А потом брать линки и качать по очерёдности (там уже данные по текучке будут). А лучше даже не кидать в массив а брать уже с готового массива парсера иксемеля. Ибо зачем тратить лишний раз ресурсы.

Couch
27.10.2008, 15:10
BBOY Ильич а как в вашем примере сделать чтобы картинки грузились не в mc а в другом символе. Не могу перенести mc_loader в другой символ.

BBOY Ильич
27.10.2008, 17:34
mc.mc_loader.Preloader(thumbnailsUrl+mc.url,null, mc.progress, mc.proc);
вот так происходит вызов загрузчика в моем примере, где:

mc.mc_loader - тот мувиклип, куда мы грузим картинку
thumbnailsUrl+mc.url - адрес картинки
null - целый мувиклип с прелоадером, если таковой используется
mc.progress - полоска прогрессбара в прелоадере
mc.proc - текстовое поле, в котором отображаются проценты загрузки этой картинки.

То есть, чтобы загрузить картинку в другой символ, просто измените mc.mc_loader на что-то другое.
Например MyMovieClip_mc.Preloader(...);

Couch
27.10.2008, 19:57
BBOY Ильич - спасибо бальшое, разобрался.