Несмотря на то, что в ActionScript по сути нет деструктора / финализатора, я бы посоветовал иметь метод, который освобождает все ресурсы в вашем классе, когда они вам больше не нужны.
Сборщик мусора собирает только те объекты, которые больше нигде не нужны, и использует подсчет ссылок, чтобы определить, когда это так. Так что, пока есть неразрешенные прослушиватели событий, циклические зависимости (объекты, ссылающиеся друг на друга) и т. Д., Вы можете этого не замечать, но использование памяти будет увеличиваться, а сборщик мусора никогда не освобождает эти ресурсы вообще.
Таким образом, вы должны иметь метод destroy()
или finalize
, который:
- удаляет всех прослушивателей событий
- вызывает
destroy()
или finalize()
для вложенных объектов
delete
s все сильные ключи объектов в словарях
- устанавливает для всех переменных типа объекта значение
null
(это нормально, если примитивные значения не сбрасываются)
Для экранных объектов обычно неплохо вызывать этот метод при отправке Event.REMOVED_FROM_STAGE
.