![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2010
Сообщений: 543
|
ShadowsInRain, непонятно чего вы хотели добиться, открывая этот топик. Совета?.. хм.. вряд ли, пост каждого отвечающего был оспорен вами.
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
Сложный объект (например, собранный из нескольких мувиклипов и битмапов, загруженных из внешних библиотек/файлов) - нужно конкретно смотреть, что за зверь. Но за редким исключением правило одно - разборка производится в порядке, обратном сборке. Кое-что из памяти удалить невозможно, это тоже надо учитывать. Есть, кстати, еще способ. Наблюдаю у многих игростроителей. Забить на утечку памяти. ![]() Цитата:
Последний раз редактировалось mikhailk; 01.05.2011 в 16:30. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Ещё один способ: реиспользование объектов.
Плюсы - нет необходимости полностью удалять, что положительно сказывается на производительности.
__________________
Отряд Котовскага |
|
|||||
|
но перед тем, как вернуть объект в пул dispose() - методы тоже надо вызвать, чтобы отписывать от всего внешнего и все таймеры остановить (разве что при этом bitmap-даты диспозить не надо - иначе выигрыша не будет)
Т.е. все равно надо знать время, когда объект боле не нужен. Т.е. это способ оптимизации, но никак не способ упрощения очистки памяти и "замораживания" неиспользуемых объектов. |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 35
|
Цитата:
Вот фабрика, о которой идёт речь: http://ru.wikipedia.org/wiki/Абстрак...проектирования) http://ru.wikipedia.org/wiki/Фабричн...проектирования) Цитата:
Цитата:
Цитата:
Кстати, спасибо всем за дискуссию. Так или иначе я прокрутил в голове или даже опробовал предложенные варианты. Пришлось засучить рукава и нахмурить брови, но работа идёт. Остановился на косвенной фабрике объектов. Поясняю. Все объекты создаются нормальным способом, но требуют указать менеджера, к которому они будут привязаны. Ссылку на объект можно хранить только временно, в остальном у объектов есть свойство handle, та самая псевдо-ссылка (или слабая ссылка). Менеджер управляет самыми общими свойствами, в т.ч. вызывает виртуальные функции, вроде тестов на коллизию (он занимается физикой, помимо всего), и занимается удалением объектов и проверкой слабых ссылок (сделал их в виде uint). В общем, всё, что нужно для первичного взаимодействия, есть у менеджера. Всё остальное реализуют конкретные классы, и тут уже в работу вступают операторы Is и As. В будущем можно запилить рассылку сообщений от имени менеджера для разных и интересных вещей. UPD Ещё немного, если кому интересно. Псевдо-ссылка (хендл) содержит в себе индекс объекта в контейнере Vector. Чтобы обеспечить плотность контейнера и чтобы он со временем не разрастался до бесконечности, освободившиеся слоты занимают другие хендлы. А чтобы было понятно, ведёт хендл на старый объект или его слот уже кто-то занял, хендл поделен на две части. В младшем слове (dword, short, 16 бит) хранится индекс, а в старшем - ключ, который генерируется заново при повторном использовании слота. Последний раз редактировалось ShadowsInRain; 03.05.2011 в 13:57. Причина: упд |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 35
|
КорДум, ну дак я и пишу, что все обо всех знают не всё, а только то, что нужно для взаимодействия. Все объекты внутри мира друг друга видят, как объекты базового класса (у меня он называется Actor), а дальше уже дело техники — виртуальные функции и полиморфизм.
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
|
|
|||||
|
Регистрация: Mar 2011
Сообщений: 35
|
Никак. Потому что не собираюсь. /_o
|
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
А при чем тут тогда flash/AS3?
Кстати, по поводу AIR - я видел десктопные игры на AS3/AIR. Теоретически, они могут быть портированы в браузерки для соц.сетей. Но практической реализации два-в-одном я не видел. |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:16. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| AS3 , delete , references |
|
|