![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 9
|
Доброго времени суток!
Есть swf файл(графическое отображение конструктора стульев), который загружает все компоненты из вне (467 png файлов, общий вес 14 мегабайт). Для каждого объекта честно создаётся экземпляр Loader, приблизительно так: _request = new URLRequest(_url); this._karkas[j][i] = new Loader(); this._karkas[j][i].contentLoaderInfo.addEventListener(Event.COMPLETE, picOnLoadHandler); this._karkas[j][i].contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, picOnLoadErrorHandler); this._karkas[j][i].load(_request); Может кто-то сталкивался с такой проблемой? Или загрузка большого количества графических объектов должна осуществляться как-то иначе? Обязательным условием является то, что до инициации все компоненты должны быть уже загружены. |
|
|||||
|
Регистрация: Feb 2007
Сообщений: 63
|
загрузку надо делать очередью - по событию Event.COMPLETE начинать грузить следующее изображение, а не все сразу в цикле. проще обернуть все это в класс, конструктор которого будет получать список url'ов, а сам класс будет диспатчить тот же Event.COMPLETE, но только после загрузки всех картинок и предоставлять доступ к массиву(или куда вам там удобнее класть загруженное) картинок.
загрузили картинку - запомнили ссылку на loader.content, например, положив ее в массив, и этот же загрузчик погнали грузить дальше. |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 1,195
|
Посчитайте, сколько должны занять эти ваши 467 png-файла в распакованном виде (ширина*высота*4 байт на каждый).
|
|
|||||
|
Регистрация: Sep 2009
Сообщений: 9
|
Цитата:
флеш конвертирует каждое изображение в BMP? 467 * 400 * 300 * 4 / 1024 / 1024 = 213,775 мегабайт похоже на правду... а как можно решить эту проблему? объём выделяемой памяти уменьшится, если импортировать все png-файлы в символы и вызывать их из библиотеки по необходимости? |
|
|||||
|
Цитата:
а как еще хранить их в памяти? так поступают все графические приложения, не только флеш (можно конечно хранить их в png, но все-равно при каждой отрисовке необходимо получать Bitmap, а это нагрузка на процессор) Цитата:
__________________
я могу стать всем, если только захочу |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
нет. он всегда все распаковывает в бмп. Не загружайте заранее то, что не помещается на экране. Или загружайте и тут же выгружайте. Данные остануться в кеше браузера и в следующий раз загрузятся почти мгновенно.
|
|
|||||
|
Регистрация: Sep 2009
Сообщений: 9
|
Цитата:
Заказчик поставил условие, что при изменении параметров, никакие компоненты не должны больше подгружаться, и результат должен быть виден сразу... |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 9
|
Цитата:
Это не даст обратного эффекта? Я думал об этом, но меня пугает объем рутинной работы по объявлению каждому символу названия класса... Может есть какой-то другой способ извлечения символов из библиотеки кроме создания экземпляра класса? |
|
|||||
|
Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
|
Цитата:
Вообще, флеш автоматически подставляет имя класса, соответствующее имени символа в библиотеке, поэтому прописывание можно свести к установке флажка и нажатию ok. А в CS4 есть возможность сделать эту операцию для группы файлов.
__________________
Griver Последний раз редактировалось mre; 10.09.2009 в 13:21. |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:52. |
|
|
« Предыдущая тема | Следующая тема » |
|
|