Было много обсуждений по этой проблеме, но я хочу обратить внимание на ситуации, которые IMHO кажутся не очень ясными:
Да, общие правила: Удалить chachedAsBitmap Остановить movieClip, если проигрывается Удалить события Удалить ссылки и т. Д..
Но давайте посмотрим:
Первый пример: у меня есть вложенный спрайт (например, mainSprite), он содержит другие спрайты с динамическими текстовыми полями в нем (и чеканятся как растровые изображения), только textFileds иMovieClips со слушателями событий на нем (со слабой ссылкой).Когда мне нужно удалить этот спрайт, мне нужно сначала удалить все его вложенное содержимое с помощью циклов, или просто достаточно
removeChild(mainSprite);
mainSprite=null;
?
Второй пример: у меня есть некоторый спрайт, в котором я 'm загружая растровое изображение и манипулируя с bitmapData, позже я просто заменяю содержимое этого спрайта другим растровым изображением, выделяется ли память для более старого растрового изображения, автоматически стирается и перезаписывается или все еще существует?
Третий пример: у меня есть некоторые"графический шаблон" MovieClip (в библиотеке с установленным для него свойством Export for Actionscript), который я добавляю на сцену и заполняю динамическими данными (и добавляю прослушиватели событий), скажем, что это одна сцена приложения, другая сценаМне нужен тот же MovieClip с другими динамическими данными, но между тем нужно очистить мою сцену (нужно что-то вроде анимации перехода, которая также является библиотекой MovieClip), что является лучшим способом: установить для этого свойства видимого свойства MovieClip значение false (при воспроизведении анимации перехода) изатем повторно или просто удалите его с помощью removeChild, а затем добавить при добавлении с помощью addChild еще раз?
Все, что я написал, - это больше об Air Mobile, потому что в большинстве случаев для настольных компьютеров эти ситуации не так проблематичны, но в случае мобильной разработки они есть.