![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2002
Сообщений: 202
|
такой вопросик:
есть картинки, которые я загружаю с диска в клипы отображаются картинки пачками причем пользователь может просмотреть пачки по нескольку раз и в произвольном порядке сейчас вчерновую реализовал так: 1) когда пользователь запросил очередную пачку, которая еще не была просмотрена - создаются MovieClip и в них загружаются картинки через MovieClipLoader 2) когда пользователь запросил очередную пачку, то что отображалось делается скрытым (_visible = false) 3) если пользователь запросил пачку с уже загруженными картинками - пачка делается видимой (_visible = true) все это сделано для оптимизации удаленной загрузки ресурсов НО!!! мне не нравится, что приходится делать MovieClip скрытыми если бы у меня картинки были бы сразу в ролике, я бы использовал привязки (Linkage) и загружал бы в клипы только то, что необходимо А можно ли подобный подход реализовать когда картинки на диске, а не вролике Т.е. загружать картинки не в клип, который торчит на экране, а куда-нить в другое место, откуда можн было бы извлекать эти данные |
|
|||||
|
Модрон-ветеринар
|
Я тоже так делаю. Что конкретно вас смущает в их нахождении с _visible = false на сцене?
Они не нагружают процессор. Последний раз редактировалось mooncar; 01.09.2009 в 18:39. |
|
|||||
|
Регистрация: Sep 2002
Сообщений: 202
|
ну как-то не кошерно как мне кажется
т.е. как мне кажется не место неиспользуемым клипам в основном окне |
|
|||||
|
Модрон-ветеринар
|
Совсем забыл, я недавно делал иначе!
Вот вам решение, оно как раз для этого случая: битмап-массив может быть "другое место, откуда можн было бы извлекать эти данные". Приведу тут куски моего кода.. После загрузки через MovieClipLoader: Грузите во временный контейнер, у вас после этого он остается на сцене для просмотра (у меня удалялся). И отрисовываете его в массив битмап-данных. И для лоадера: listener.onLoadInit = function(target_mc:MovieClip) { this["bitmap" + f] = new BitmapData(target_mc._width, target_mc._height, false); this["bitmap" + f].draw (target_mc); //отрисовываем битмапу из загруженного контейнера с картинкой target_mc.unloadMovie(); _root.bitmaps[f] = this["bitmap" + f]; //вот тут мы сохраняем полученную битмапу в массив f++; nextLoad(); //тут я переходил к следующему слайду } Когда данный контейнер не нужен, спокойно (удаляете) ремуваете контейнер или контейнеры. Поскольку я удалял сразу (показ был отложен) , у меня был так сразу в теле onLoadInit: Когда опять нужен, уже не _visible = true, а либо аттачите, либо создаете контейнер (я предпочитаю аттачить - ), и отрисовываете в него битмапу из нужного элемента массива. Этот кусок я не приведу (быстро не найду, другое место). Добавлено через 7 минут Так, думаю, кошерно. Сейчас уже вижу, что кое-какой временный мусор нужно убирать (нарпимер внутри listener)... Последний раз редактировалось mooncar; 01.09.2009 в 20:48. |
|
|||||
|
Регистрация: Sep 2002
Сообщений: 202
|
а такой вопрос - если я буду хранить bmp данные, а не jpg то это же может привести к чрезмерному расходованию памяти - например для картинки 800x600 jpg c 75% качества составит примерно 150кб, а bmp - 1.4МБ
|
|
|||||
|
Модрон-ветеринар
|
Может бвть это чрезмерно, но другого временного хранилища для оперативного доступа я не знаю...
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:15. |
|
|
« Предыдущая тема | Следующая тема » |
|
|