Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Уничтожение Экземляров Класса (http://www.flasher.ru/forum/showthread.php?t=111928)

FlashTech 13.05.2008 00:43

Уничтожение Экземляров Класса
 
Никак не могу найти вразумительного ответа о том, как же всетаки корректно уничтожать экземпляры классов. Из того что нашел на форуме выяснил только, что дело это мутное и сборщик мусора вообще нечто мистическое :)

К примеру мне нужно создать 100 DisplayObjects каждый из которых содержит в себе кучу дополнительного мусора такого как: графика, события, массивы. создается впечатление, что простое приравнивание всех указателей на этот экземпляр к null - не приводит в желаемому результату. Если только не пользоваться хаком через LocalConnection.

Может есть какие нибудь наработки в этой сфере?
Буду признателен любой мысли в эту сторону :)))
спасибо!

wvxvw 13.05.2008 03:29

А как с LocalConnection? =)

badun 13.05.2008 04:10

http://www.gskinner.com/blog/archive...source_ma.html
http://www.gskinner.com/blog/archive...e_to_unlo.html

me2 13.05.2008 04:13

Бадун меня опередил.

Полюбому две копейки: если у тебя дисплейобжэкт, то должно хватить removeChild() и removeEventListener().
для особо фанатичных можно пробежать по удаляемому объекту через for(var n in delobj) и обнулить всё что найдётся.
после обнулить сам объект

etc 13.05.2008 09:39

Хак с LC не поможет, если объекты подписаны на какие-то глобальные события или находятся в display list.

wvxvw 13.05.2008 12:40

Млин =( Походил по ссылкам, но так и не понял в чем заключается хак. Объясните пож в двух словах, или ткните пальцем в саму статью...

fljot 13.05.2008 12:57

wvxvw, скиннер эксперементально обнаружил, что при создании двух локалконнекшнов с одним именем, возникает критическая ошибка и срабатывает GC. ошибку, конечно, ловят (и ничего с ней не делают). работа GC происходит по его обычному сценарию - если ссылок на объект нет то он удалится

etc 13.05.2008 13:03

Насколько я помню, GC в обычном плеере таким образом не вызвать. Да и применять такой хак в релизе проекта я бы поостерегся.

fljot 13.05.2008 13:10

Цитата:

Сообщение от __etc (Сообщение 738881)
Да и применять такой хак в релизе проекта я бы поостерегся.

почему? в новых плеерах ошибка может перестать ловиться?

etc 13.05.2008 13:16

Цитата:

Сообщение от fljot (Сообщение 738885)
почему? в новых плеерах ошибка может перестать ловиться?

Потому что это костыль, который может перестать работать в любой момент и будет просто мусором.


Часовой пояс GMT +4, время: 21:45.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.