Обновлено, правильный ответ
Мой первоначальный ответ был неверным, и я искренне извиняюсь.Я оставлю все свои снисходительные комментарии и информацию нетронутыми, чтобы позор навсегда напомнил мне никогда не доверять тому, что Adobe снова скажет.Текущая документация теперь гласит:
"Если вам больше не нужен прослушиватель событий, удалите его, вызвав removeEventListener (), иначе могут возникнуть проблемы с памятью. Прослушиватели событий не удаляются автоматически из памяти, поскольку сборщик мусора не удаляетпрослушиватель до тех пор, пока существует диспетчерский объект (если для параметра useWeakReference не задано значение true). "
Обратите внимание, что прослушиватели событий СОБРАНЫ для сбора мусора, если естьслабая ссылка или нет, пока диспетчерский объект удаляется первым.Таким образом, в обоих случаях они никогда не вызовут утечку памяти.Я прошу ОП отменить мой ответ как правильный и дать кредит / правильный ответ + отзыв на @ Malyngo.
Оригинальный (неправильный) ответ и (неправильная) информация следует
Оба будут.Привязка слушателя события создает сильную ссылку на исходный объект, и поэтому сборщик мусора не будет его очищать.Вам необходимо явно удалить прослушиватели событий или указать их как слабые ссылки, что должно быть одним из параметров addEventListener.
Для людей, утверждающих, что слушатели не будут мешать другим объектам собирать мусор
http://gingerbinger.com/2010/07/actionscript-3-0-events-the-myth-of-useweakreference/
Краткое содержание статьи:
"Представьте, что наш игрок умирает, и мы хотим, чтобы он был очищен. Однако слушатель события создаетссылка со сцены на игрока. Эта сцена является самым верхним экранным объектом и всегда доступна. Поэтому, когда запускается процесс очистки метки, этот прослушиватель событий позволяет сборщику мусора переходить от сцены к нашему объекту игрока, даже еслимы удалили все остальные ссылки и удалили его из списка отображения. "
Таким образом, существует по крайней мере один сценарий, в котором только прослушиватель событий, строго связанный, может препятствовать объекту.
Лучшее практическое решение:
1) Снимите его с дисплея. list.
2) Если это мувиклип, скажите ему остановить ().
3) Удалите все прослушиватели событий, созданные объектом.
4) Удалите все ссылки в родительских объектах, установив для них значение null.
Обновление снова
Утечка памяти не обязательно означает, что память приложений будет постоянно расти.Утечка памяти также может просто описывать память, которая выделяется и сохраняется в течение всего срока службы приложения, когда она должна быть переработана.Нечто подобное этому тестовому коду будет не очень легко обнаружить.Но сделайте это N раз за час игры, и я гарантирую вам это покажет.У меня была такая же ситуация с алгоритмом шифрования, который я написал однажды.Через некоторое время мое приложение начало работать с частотой 10 или менее кадров в секунду, потому что виртуальная машина съела тонну памяти, которую она на самом деле больше не использовала, но все еще управляла ей.