Чайлдс и родители и знаменитый сборщик мусора в actioncript-3 - PullRequest
0 голосов
/ 27 августа 2009

Еще раз вопрос о сборщике мусора в actionscript-3:

Если у меня есть главный контейнер:

var masterContainer:Sprite = new Sprite();

А потом я добавляю дочерний элемент в этот контейнер:

var childImage:Sprite = new Sprite();
masterContainer.addChild(childImage);
addChild(masterContainer);

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

removeChild(masterContainer);
masterContainer = null;

Или мне нужно где-то хранить ссылки на все дочерние изображения, чтобы позже можно было удалить их дочерние элементы из главного контейнера?

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

1 Ответ

3 голосов
/ 27 августа 2009

Первая часть вашего вопроса:

Технически говоря, этого достаточно. Хотя это зависит от побочных эффектов. Если у вас есть слабые слушатели, ничего не будет GCed.

Вторая часть:

У вас может быть словарь с объектом, который вы хотите контролировать, в качестве слабого ключа. Затем запустите таймер и посмотрите, когда это будет удалено.

...