![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Dec 2008
Сообщений: 38
|
Здравствуйте!
Вопрос следующий: почитал форум и хочу наконец-то понять порядок удаления объектов из памяти и ваше мнение. Как я понял, на физическое удаление мы не можем повлиять никак (это уже от того "как встанут звезды" и когда выполнится GC зависит), однако хотелось бы точно знать, какие правильные (!) и необходимые действия AS3 надо выполнить для этого. Из форума понял следующий порядок: 1) removeChild удалить объект из дисплейного листа 2) отвесить всех слушателей 3) присвоить всем ссылкам на объект null Вопрос1 - Это все необходимые действия? Вопрос2 - Разъясните: Дисплейный лист - это абстрактная реализация отображения, т.е. она не существует как член класса основного мувиклипа, т.е. в нем не могут оставаться ссылки на объект после removeChild? Вопрос3 - Наткнулся на некоторую статью по вопросу работы с памятью в AS3, там советуют использовать WeakReference, в то время как на форуме я нашел мнение, что их лучше вообще не использовать (т.к. не ясно вообще когда такие объекты удалит GC). Если ваш ответ зависит от моих действий (что чаше всего так и бывает, т.е. чаще всего задача решается по ходу), так вот, я в библиотеке для мувиклипа залинковал класс и реализовал его. А в основном классе мувиклипа множу эти объекты и через определенное время удаляю, удаляю как в пунктах 1,2,3 написанных выше, однако память растет. |
|
|||||
|
1) Чтобы GC сработал, да. (поправка: в смысле, чтобы когда GC сработал он это забрал)
2) Ну, DisplayList - что то вроде массива (абстрактно говоря). Удаляя со сцены что то - мы удаляем этот элемент массива. Конечно, получить теперь этот элемент невозможно. Добавляя на сцену - добавляем туда элемент. (сцена=контейнер) 3) Не приходилось использовать WeakReference. За время своего прибывания на форуме понял, что __etc, iNils, Nirth (поставлены по алфавитному порядку) плохого не посоветуют, поэтому да, лучше не использовать. Про память - трейд искать лень, но памят будет расти если повесишь просто ENTER_FRAME или Timer. Таков фп.
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:22. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| удаление displayobject , удаление экземпляров |
|
|