![]() |
Прелоадер, включащий в себя загрузку внешних данных
Добрый день! Я читал темы про разные прелоадеры, но решения своей задачи не нашел. Может кто сможет подсказать - в каком направлении двигаться?
Задача следующая: 1. Есть флэш ролик, он весит совсем не много - 80Кб. 2. В ролик загружаются внешние данные из xml файлов (т.е. загружаются xml файлы, 3 шт.) 3. В xml файла содержатся параметры-ссылки на изображения, по которым затем в ролик подргужаются изображения. Как написать на это всё общий прелоадер, чтобы он показывал процесс загрузки всего контента вместе? Стандартный вариант прелоадера в первом кадре только загружает сам ролик, а файлы потом постепенно подгружаются во время его воспроизведения, соответственно по-очереди. Я пытался собрать для всех внешних файлов bytesTotal и сложить в один большой bytesTotal, а затем следить за общим числом bytesLoaded, так же последовательно сложенных из всех bytesLoaded. Если у кого-нибудь есть какие-нибудь идеи или наработки - подскажите начинающему флэшеру! Спасибо. |
Цитата:
|
В as3 насколько знаю нет возможности узнать размер удалённого файла да начала загрузки. Если ресурсы грузятся из xml, то туда можно и все размеры файлов занести (размеры можно генерировать автоматически локальным или серверным скриптом).
Или просто хранить во флешке общий размер всех ресурсов. Так как загрузчик многоступенчатый, вначале грузится флешка, потом хмлы с описанием ресурсов, а потом сами ресурсы, можно распределить прогресс загрузки в процентнов соотношении, напримен - 5, 10, 85. Но снова же для корректного отображения прогрессса нужно знать точный размер ресурсов каждой ступени. |
Код AS3:
Вот только какой-то он глючный получился. Не с первого раза запускается - иногда просто ничего не грузит, а иногда после нескольких рефрешей - работает нормально. Так ещё похоже и в разных браузерах по-разному. Я так понимаю, что я что-то не так делаю при сборе bytesLoaded и bytesTotal со всех подгружаемых элементов. Как ведет себя флэшка можно посмотреть тут madex-design.ru/kyboe Добавлено через 28 минут Причем, похоже, в разных браузерах по-разному. |
Довольно сложно читать код с недостаточной информацией и ошибками .
Но думаю дело в Код AS3:
И _bytesTotal не станет мнгновенно общим количеством байт, для этого начать грузиться (отправить первый прогрессивент) должны все файлы. И так, как у тебя похоже грузится всё одновременно, _bytesTotal вполне может стать реальным только под конец загрузки. То что иногда это работает вероятно связано с кешированием файлов браузерами. |
Да, действительно - непонятный кусок кода и непонятно о чем флэшка, когда она не работает :)
Флэшка - электронный каталог часов разных цветов. Информация о часах и цветах хранится в xml файлах. Соответственно для каждого из часов есть картинка и для каждого из цветов тоже тоже есть картинка. Все эти картинки должны быть предзагружены, а процесс показан прелоадером. Все xml и музыка подгружаются одновременно, а картинки по мере прохода xml файла после его загрузки. Вот код класса body, который привязан к документу. Код AS3:
Да, при компиляции ошибок нет. Добавлено через 51 час 20 минут Кажется разобрался в чем дело. И помог мне обычный trace. MovieClipы создавались раньше, чем подгружались картинки, это раз. Поэтому иногда после загрузки флэшки не было никаких динамически создаваемых элементов видно. Каталоги грузятся значительно быстрее, чем изображения (сам массив элементов быстрее формируется, чем происходит загрузка картинок к нему) - это два. Поэтому делаем 2 действия: - Добавляем 1 байт к общему числу байт, чтобы нельзя было достигнуть значения счетчика, прежде, чем картинки начали грузиться (соответственно добавлять свой размер к общему числу байт). А снимаем его, когда фоновая музыка загружена. К тому моменту картинки точно успеют начать грузиться. - По каждой команды по загрузке картинки добавляем к общему числу байт 1 байт. А в функции, вызываемой по окончанию загрузки картинки его снимаем. |
| Часовой пояс GMT +4, время: 20:59. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.