![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 55
|
Цитата:
вот, плеер, запомни - мы тут инстанс битмапы как бы создали, но ты память под него не выделяй, пока никто не обратится так что ли? |
|
|||||
|
Регистрация: Jun 2011
Сообщений: 60
|
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Чего то дискуссия свернула куда то не туда. Как в разные промежутки времени создавать битмапы ссылающиеся на одну BitmapData? Т.е. насоздовали битмап и забыли про это, затем понадобилось еще несколько таких же битпап, но где взять ссылку на BitmapData первой группы? Сначала подумал, что можно было бы создать класс в котором бы хранились все ссылки на BitmapData если они используются. В геттере проверяли бы существует ли BitmapData, если да до возвращаем ссылку на нее, если нет то предварительно создаем объект из класса Embed и присваиваем ссылке в классе его BitmapData. Кроме того, что это затрудняем редактирование содержимого библиотеки, ко всему прочему не понятно как обнулить ссылку на BitmapData если нет использующих ее битмап.
|
|
|||||
|
Lorem ipsum
|
__________________
Поймай яблоко 2! |
|
|||||
|
Если высоздали BitmapData и забыли о нем, но хотя бы одна ссылка на него все же существует, тогда создание еще одного экземпляра BitmapData неоправдано увеличит расход памьяти. Так что лучше создать по экземпляру нужных BitmapData (если они постоянно используются, а не позказываются, скажем, в финальных титрах) и передавать ссылки на них нужным Bitmap-ам. Все BitmapData можно собрать в одном месте (склад текстур
) |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Цитата:
Вот я в предыдущем своем посте нечто подобное предлагал: public class imgStorage { private static var _Orange_1:BitmapData; static function get Orange_1():BitmapData { if (!_Orange_1) _Orange_1 = new Background.Orange_1()// если BitmapData нет то создаем ее из класса Embed return _Orange_1; } } Но пока что способ этот выглядит очень криво и деревянно. |
|
|||||
|
А в чем идея то?
Если Вам нужно кое что из БОЛЬШОГО НАБОРА, тогда либо грузите все и потом имеете моментальный доступ к нужным ресурсам, либо грузите лиш по необходимости, но тогда будет задержка на загрузку перед отображением. Просто не могу понять Вашу ситуацию... З.Ы.: В одной из онлайн игр с флешовым клиентом видел хороший прием: как только локация загрузится (со всеми обьектами и неписями - они все же стандартные и 100% будут отображаться) сразу же начинается игра, а текстуры для всех игроков, которые попадают в поле зрения подтягиваются в фоновом режиме. Во время загрузки этих текстур вместо игроков подставляются только силуэты мужской/женской фигуры. Хоть это не очень красиво, но, лично меня, длительная загрузка раздражает больше ![]() Добавлено через 6 минут Раз у Вас ресы встроеные, значит они уже "жрут" памьять... Будете Вы их использовать или нет - они уже есть. Другой вопрос, будете лы Вы всем бимапам, что должны отображать одинаковые обьекты, передавать ссылку на одну и ту же БитмапДату, или для каждой создадите по экземпляру? Последний раз редактировалось elder_Nosferatu; 29.05.2012 в 21:18. |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Вот как раз реализацию этого процесса я и прошу подсказать.
Пример: Есть склад, на котором могут храниться любые объекты. Мы не можем хранить в памяти BitmapData'ы для всех существующих в мире объектов, поэтому подгружаем BitmapData'ы только тех объектов, которые хранятся на складе. Эти BitmapData'ы нужно где то хранить, что бы если на склад привезут, скажем, Гвозд'и, которые уже есть на складе, мы не создавали новую BitmapData'у гвоздей, а использовали уже имеющуюся. Если со склада увозят все объекты одного типа, то надобность хранить BitmapData'у отпадает и она должна быть автоматически выгружена из памяти. Цитата:
Последний раз редактировалось PlutDem; 29.05.2012 в 21:37. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
заводить счётчик.
Вот кастомный менеджер ресурсов. (за код сильно не бейте) https://github.com/k0t0vich/fazenda/...TileManager.as когда мы говорим getTileByName мы увеличиваем счётчик, когда говорим deleteResource, счётчик уменьшается. Но тут надо аккуратно следить.
__________________
Отряд Котовскага |
|
|||||
|
Цитата:
![]() Добавлено через 3 минуты Все, чем напичкано основное приложение, при старте попадает в памьять. Если есть внешние данные, тогда Вам (приложению) решать, что загружать в себя (в памьять, выделенную для себя) и что из загруженного выгрузить из себя. |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:33. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|