AS3 - это язык для сбора мусора, поэтому нет явной команды для удаления объектов из памяти. Однако виртуальная машина AS3 выполняет подсчет ссылок, поэтому, если вы удалите экранный объект со стадии и удалите все ссылки на этот объект , объект будет уничтожен сразу или очень скоро, так что вы больше не будете см. следы от него и т. д.
Если вы удалили все видимые ссылки на объект, но он не был собран, возможно, проблема в циклических ссылках. Например, родительские и дочерние объекты ссылаются друг на друга, поэтому описанная выше обработка не сможет удалить их, пока вы не удалите все. В этих случаях объекты не будут удалены из памяти до тех пор, пока не произойдет сборка мусора (то есть, разметка). (GC относительно медленные, поэтому внутренняя структура проигрывателя оптимизируется, когда они происходят, исходя из того, сколько памяти доступно и других факторов.)
Кстати, все вышесказанное относится к всем объектам, независимо от того, являются ли они отображаемыми объектами, представлениями Flex, NetStream или чем-то еще. Для получения дополнительной информации, вот хороший обзор AS3 GC - он старый, но все еще правильный.
Но что вам следует понимать как программисту, так это то, что почти во всех случаях вам не нужно беспокоиться об этом. Удалите все ваши ссылки на объекты (и stop()
их, если они играют), и пусть (сильно оптимизированный) внутренний GC решит, когда они действительно исчезнут. Если памяти становится мало, GC будет действовать, а если нет, то любое дополнительное управление памятью будет просто преждевременной оптимизацией.