![]() |
Может попробуй сделать список для хранения свох МувиКлипов(сам не тестил, писал находу):
Код:
var mсList:MovieClip = new MovieClip(); // хотя хватит и просто Sprite |
removeChild не удалит клип из памяти, только из Display list.
|
Может быть проблема автора поста в том, что он создает обработчик события для МувиКлипа и не удаляет его (removeEventListener()) и потом GC не удаляет этот МувиКлип из памяти...
|
Какой обработчик? Нет там никаких обработчиков, я привел пример живущего клипа без всяких обработчиков.
|
Да, всё хорошо..
Я разобрался с этим. Память просто отчищасется в редких случаях походу только когда её хватать перестаёт.. |
__etc, обработчик там все таки есть. Откудато trace('hello') происходит же.
Удалив из первого кадра MyClip'а и написав так: Код:
var mc:MovieClip = new MyClip();Ну а если надо экземпляр класс удалить, то предлогаю написать функцию destroy Код:
package { |
2Dima_DPE
Этот способ хорош для того чтобы подготовить клип к его смерти. но в памяти он будет еще долго жить.. У __etcта тейс идёт не от Евента, а он того что клип зацикленно проигрывает анимацию на своём таймлайне. В следствии чего перед удалением клип лучше еще и остановить stop() чтобы успокоить его душу) |
Dima_DPE, это не освободит память, уже проверено. Мы просто скрываем от себя самого существование клипа. Как тогда объяснишь принудительное срабатывание GC? Если ссылки есть, он не удалит клип никогда. Если удаляет, значит все-таки ссылок нет, но удаление не происходит автоматически.
|
Единственная проблемы с принудительным запуском GC - сколько времени это занимает, у меня заняло 7ms...
|
Сразу он не срабатывает, а во флексе даже на enterFrame не срабатывает. Возможно, это из-за иной схемы тестирования.
|
| Часовой пояс GMT +4, время: 08:22. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.