Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.12.2008, 13:48
hipot вне форума Посмотреть профиль Отправить личное сообщение для hipot Посетить домашнюю страницу hipot Найти все сообщения от hipot
  № 1  
Ответить с цитированием
hipot
 
Аватар для hipot

Регистрация: Dec 2008
Сообщений: 38
Arrow Порядок удаления дисплей-объектов из памяти

Здравствуйте!
Вопрос следующий: почитал форум и хочу наконец-то понять порядок удаления объектов из памяти и ваше мнение. Как я понял, на физическое удаление мы не можем повлиять никак (это уже от того "как встанут звезды" и когда выполнится GC зависит), однако хотелось бы точно знать, какие правильные (!) и необходимые действия AS3 надо выполнить для этого. Из форума понял следующий порядок:
1) removeChild удалить объект из дисплейного листа
2) отвесить всех слушателей
3) присвоить всем ссылкам на объект null

Вопрос1 - Это все необходимые действия?
Вопрос2 - Разъясните: Дисплейный лист - это абстрактная реализация отображения, т.е. она не существует как член класса основного мувиклипа, т.е. в нем не могут оставаться ссылки на объект после removeChild?
Вопрос3 - Наткнулся на некоторую статью по вопросу работы с памятью в AS3, там советуют использовать WeakReference, в то время как на форуме я нашел мнение, что их лучше вообще не использовать (т.к. не ясно вообще когда такие объекты удалит GC).

Если ваш ответ зависит от моих действий (что чаше всего так и бывает, т.е. чаще всего задача решается по ходу), так вот, я в библиотеке для мувиклипа залинковал класс и реализовал его. А в основном классе мувиклипа множу эти объекты и через определенное время удаляю, удаляю как в пунктах 1,2,3 написанных выше, однако память растет.

Старый 29.12.2008, 21:14
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
1) Чтобы GC сработал, да. (поправка: в смысле, чтобы когда GC сработал он это забрал)
2) Ну, DisplayList - что то вроде массива (абстрактно говоря). Удаляя со сцены что то - мы удаляем этот элемент массива. Конечно, получить теперь этот элемент невозможно. Добавляя на сцену - добавляем туда элемент. (сцена=контейнер)
3) Не приходилось использовать WeakReference. За время своего прибывания на форуме понял, что __etc, iNils, Nirth (поставлены по алфавитному порядку) плохого не посоветуют, поэтому да, лучше не использовать.

Про память - трейд искать лень, но памят будет расти если повесишь просто ENTER_FRAME или Timer. Таков фп.

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
удаление displayobject , удаление экземпляров

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:22.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.