![]() |
Уничтожение Экземляров Класса
Никак не могу найти вразумительного ответа о том, как же всетаки корректно уничтожать экземпляры классов. Из того что нашел на форуме выяснил только, что дело это мутное и сборщик мусора вообще нечто мистическое :)
К примеру мне нужно создать 100 DisplayObjects каждый из которых содержит в себе кучу дополнительного мусора такого как: графика, события, массивы. создается впечатление, что простое приравнивание всех указателей на этот экземпляр к null - не приводит в желаемому результату. Если только не пользоваться хаком через LocalConnection. Может есть какие нибудь наработки в этой сфере? Буду признателен любой мысли в эту сторону :))) спасибо! |
А как с LocalConnection? =)
|
|
Бадун меня опередил.
Полюбому две копейки: если у тебя дисплейобжэкт, то должно хватить removeChild() и removeEventListener(). для особо фанатичных можно пробежать по удаляемому объекту через for(var n in delobj) и обнулить всё что найдётся. после обнулить сам объект |
Хак с LC не поможет, если объекты подписаны на какие-то глобальные события или находятся в display list.
|
Млин =( Походил по ссылкам, но так и не понял в чем заключается хак. Объясните пож в двух словах, или ткните пальцем в саму статью...
|
wvxvw, скиннер эксперементально обнаружил, что при создании двух локалконнекшнов с одним именем, возникает критическая ошибка и срабатывает GC. ошибку, конечно, ловят (и ничего с ней не делают). работа GC происходит по его обычному сценарию - если ссылок на объект нет то он удалится
|
Насколько я помню, GC в обычном плеере таким образом не вызвать. Да и применять такой хак в релизе проекта я бы поостерегся.
|
Цитата:
|
Цитата:
|
| Часовой пояс GMT +4, время: 21:45. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.