Форум 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=143668)

Robotex 22.08.2010 20:53

Количество ссылок на объект
 
Скажите, возможно ли во флеше получить число объектов, ссылайщихся на данный? Или может хотя бы есть эвент, возникающий при удалении объекта либо ссылки на него?

Psycho Tiger 22.08.2010 21:29

Нет, невозможно.
Эвент есть. У него есть имя, которое нельзя произносить, но оное не важно: при удалении последней ссылки на объект нельзя поймать событие о том, что все ссылки были удаленны. Потому что событие тоже ловится через ссылку.

expl 22.08.2010 22:57

У сишников сборщика мусора нет - они выкручиваются с помощью прокси - счетчика сылок, чтобы знать когда уничтожать объект,
впринципе тоже можно сделать и для флеша, но нативно это сделать не удастся
В каждом элементе, использующем объект нужно будет ослеживать момент, когда он более не используется и говорить об этом счетчику ссылок.

Psycho Tiger 22.08.2010 23:39

expl, забавно =)
Однако я придерживаюсь мнения что автору это нафиг ненужно. Либо цель образовательная, либо он что-то делает неправильно.

Robotex 23.08.2010 04:19

Цитата:

Сообщение от Psycho Tiger (Сообщение 930660)
expl, забавно =)
Однако я придерживаюсь мнения что автору это нафиг ненужно. Либо цель образовательная, либо он что-то делает неправильно.

неправильно как раз доверять корявому сборщику мусора, который работает только когда память окончательно заканчивается

Bgg 23.08.2010 04:53

Цитата:

Сообщение от Robotex (Сообщение 930716)
неправильно как раз доверять корявому сборщику мусора, который работает только когда память окончательно заканчивается

Чего это он корявый? По вашему он должен чистить память когда её полным полно?)

Количество ссылок на объект можно увидеть в profiler'e FlashBuilder.

А ещё есть CASA lib, в ней почти все основные классы обладают методом destroy, который типо удаляет все ссылки на объект... но вобщем это в идеале, мне в свое время не помогло, в итоге написал свой destroy для плодящихся объектов, чего и вам советую.

Psycho Tiger 23.08.2010 10:58

Цитата:

Сообщение от Robotex (Сообщение 930716)
неправильно как раз доверять корявому сборщику мусора, который работает только когда память окончательно заканчивается

Ха-ха, ну хорошо)
Как Вы почистите память без GC?)

Robotex 23.08.2010 15:56

Цитата:

Сообщение от Bgg (Сообщение 930724)
Чего это он корявый? По вашему он должен чистить память когда её полным полно?)

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

Цитата:

Сообщение от Bgg (Сообщение 930724)
в итоге написал свой destroy для плодящихся объектов, чего и вам советую.

можно поподробнее?

Bgg 23.08.2010 16:15

Цитата:

Сообщение от Robotex (Сообщение 930811)
можно поподробнее?

Ну э, метод в котором объект отписывается от слушателей, останавливает таймеры, удаляет внутренние объекты, обнуляет ссылки и тд и тп. За вас это делать никто не будет, так что придется об этом позаботится.

Jewelz 23.08.2010 16:25

Robotex вы можете только подготовить объект к удалению из памяти, но не удалить


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

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