![]() |
КорДум
А ссылка на один экземпляр только одна может быть? Отмирает перменная cur_movie, которая определена в функции, и отмирает ссылка вместе с ней. А какое отношение имеет спрайт к функции? Он же как был до выполнения функции, так и остался после. По идее спрайт, это как переменная, описаная вне функции. Точнее объект, в котором есть переменная (динамический массив или еще что-то типа того) для хранения ссылок на child'ов. Я, кстати, вообще запутался как выделяется память в AS3... Почему, например, память выделяется не сразу под весь MovieClip, а во время его проигрывания, и для каждого кадра отдельно... Т.е. Я проигрываю MovieClip с последовательностью из 1000 jpeg'ов, так вот память отжирается все это время. В смысле, с каждым кадром свободной памяти становится все меньше. |
Я не могу найти статью в инете, так что дам номер страницы в книге Мука "ActionScript 3.0 Подробное руководство". То, что вас так интересует, описано на странице 537. Там и про ссылки, и про обнуление, и про память.
Про вторую часть вашего поста ничего сказать не могу - я не сведущ в этом. Добавлено через 12 минут [IMG]http://s003.***********/i203/1006/96/457626f1719ft.jpg[/IMG] |
Спасибо. Прочитал.
И что здесь расходится с тем, что я написал? Ссылок на один объект, если верить тексту, может быть несколько. Одна из них (cur_movie) отмирает. А в video_container_mc ссылка есть. Или в объекте parent нет ссылки на child? |
Как только срабатывает метод removeChild(), ссылка-индекс автоматически удаляется из списка отображения контейнера. Там в конце написано, что после удаления клип может продолжать проигрываться. Также могут срабатывать оставшиеся события. У вас есть такое?
|
Может продолжать проигрыватся. Я же писал, что в последнем фрейме MovieClip'ов у меня stop() стоит.
|
Я иссяк. Остается надеяться на ответы гуру.
|
Ок. Есть предложение отвлечься от теории... ;) и решить одну проблему - как мне получить доступ к ссылке в моей схеме? В момент, когда я делаю:
Код AS3:
|
Цитата:
Код AS3:
|
gloomyBrain
Т.е. так? : Код AS3:
Проверил. Обратиться можем, ошибок не вылезает... т.е. можно сделать вывод, что память не освободилась. Так? Кстати, а в AS3 есть какие-то средства контроля памяти? Есть какая-то ф-ция выводящая инфу? По идее, если бы не было ссылки, то уже здесь: Код AS3:
PS Изменение кода ни как не повлияло на проблемы с памятью. Она все равно забита. |
Цитата:
Цитата:
Цитата:
К объекту можно обратиться как через clip1_mc, так и через getChildAt(0) - это ссылки на один и тот же объект. Объект станет доступным для "поедания" gc только после выполнения Код AS3:
кстати, после removeChildAt(0) пустых глубин не остается, то есть все объекты в контейнере "упадут" на одну позицию. Теперь на нулевом индексе будет сидеть объект, который раньше был на 1-м |
| Часовой пояс GMT +4, время: 19:04. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.