Просмотр полной версии : Помогите сделать умную загрузку
У меня есть набор картинок которые подгружаются из внешних файлов.
Проблемма такая :
1.Как сделать одну общую загрузку для этой системы ?
Psycho Tiger
20.08.2008, 17:36
Ок, тогда расширю этот вопрос: (самому хотелось бы знать)
Имеем N картинок, каждая со своим размером, который я не знаю.
Реально ли без внешней помощи сделать один общий прелоадер?
То есть узнать размер файла, сформировать список и начать загружать?
С "узнать размер файла" как раз и есть проблемки, можно начать загрузку, получить размер и убить её, но сами понимаете, верх кривости...
Вобщем, какие варианты?
Можно грузить по одной и писать: "загружено 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
ну может как-нибудь так...
1
кинуть картинки в библиотеку, повесить их на левый фрейм с прелоудером
ll
2
вручную посмотреть скоко весят картинки а потом эту цифру вместо bytesTotal
?
_______
у меня косвенный вопрос. Я кинул на сайт swf кодорый должен загружает картинки, но он их не загружет как будто их там нету. И такое только на серве! ):
-- оказивается картинка у меня називается *.JPG а путь к ней *.jpg
Psycho Tiger
21.08.2008, 09:53
1
кинуть картинки в библиотеку, повесить их на левый фрейм с прелоудером
ll
2
вручную посмотреть скоко весят картинки а потом эту цифру вместо bytesTotal
?
_______
у меня косвенный вопрос. Я кинул на сайт swf кодорый должен загружает картинки, но он их не загружет как будто их там нету. И такое только на серве! ):
-- оказивается картинка у меня називается *.JPG а путь к ней *.jpg
Они грузятся извне, я не знаю сколько они весят, я знаю лишь их имена. Задача: перед загрузкой понять, сколько же они весят.
2 BBOY Ильич - сейчас поставлю флэш и посмотрю...
Спасибо вам всем за ваши сообщения.
Посмотрел пример от BBOY Ильич. Проблема еще в том что я не использую xml (слишком много кода непонятного), у меня вот такая комманда для загрузки каждой картинки -
//
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip("image_1.jpg", container);
И еще если закачать файл BBOY Ильич на сайт будут ли картинки записываться в кэш или будут грузиться заново всякий раз когда пользователь посетит первый кадр ?
BBOY Ильич
26.08.2008, 18:36
просто поправьте немного вызов прототипа, изменив параметр url на нужный вам.
кэшироваться по идее должно, если не отключено в браузере...
Все пытаюсь разобраться. BBOY Ильич у вас в примере все грузиться в первом кадре, если перествавить мувиклип в другой кадр то он не грузиться.Можно ли сделать только одну загрузку в первом кадре, которая загрузит все из других кадров ?
BBOY Ильич
23.09.2008, 23:36
не понял... флеш грузит тот кадр, где находится. как можно загрузить чтото, уже находящееся во флеше+на другом кадре?
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
флеш грузит тот кадр, где находится. как можно загрузить чтото, уже находящееся во флеше+на другом кадре
непричём это просто ответ на Ваш вопрос)
Проще говоря задача такая:
1. Заходим на сайт - видим загрузку.
2. Видим на сайте картинку (которая была загружена извне через xml)
3. Нажимаем на кнопку переходим на другую картинку(которая была загружена извне через xml)
Ну теоретически может сработать такое:
зашибаешь все клипы, в которые будешь грузить картинки, в массив. Далее всем запускаешь загрузку. Ну и далее с нужной частотой проходишь по этому массиву, суммируя getBytesTotal каждого, и getBytesLoaded каждого. Для достоверности данных можно проценты начать показывать только тогда, когда каждый ролик будет уже возвращать getBytesTotal. А до этого момента показывать что-то типа "Ждите, инициализация"! ну как-нибудь по-умному ))
AlexCooper
29.09.2008, 03:23
Я незнаю может быть не кстати напишу но я всегда пытаюсь скрыть загрузку от пользователя, тоесть подгружать в "теневом" режиме.
Тоесть грузануть сначало интерфейс и "высветить" его, потом подгрузить первую картинку>высветить, потом те что находяться побокам, ипотом так по очерёдности. Это просто несильно будет перенапрягать пользователя в ожидании. Но конечно проверочку перед переходом на следующею картинку нужно поставить. А для уведомления сделать статус-бар где-нить в правом нижнем углу и показывать сколько скачанно, сколько хочеть скачаться и статус текущей закачки к примеру
Скачанно: 31% 4024bytes
В ожидании: 14234bytes
Текущее скачивание: 15% 150bytes/1000bytes
А эт реализовать просто, при создании иксемеля добавите поле со значением битража.
При парсе все данные кидаете в массив соответсвенно можно будет подсчитать общий вес. А потом брать линки и качать по очерёдности (там уже данные по текучке будут). А лучше даже не кидать в массив а брать уже с готового массива парсера иксемеля. Ибо зачем тратить лишний раз ресурсы.
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(...);
BBOY Ильич - спасибо бальшое, разобрался.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.