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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.11.2009, 14:21
Касеал вне форума Посмотреть профиль Отправить личное сообщение для Касеал Найти все сообщения от Касеал
  № 1  
Ответить с цитированием
Касеал

Регистрация: Dec 2008
Сообщений: 17
По умолчанию Listeners

При удалении объектов, как известно, слушатели не удаляются автоматически. Можно ли этому найти какой-то практическое применение? Если нельзя, то почему на Ваш взгляд, сборщик мусора не удаляет самостоятельно всех слушателей при удалении объекта.

Старый 20.11.2009, 14:30
Juice_Green вне форума Посмотреть профиль Отправить личное сообщение для Juice_Green Посетить домашнюю страницу Juice_Green Найти все сообщения от Juice_Green
  № 2  
Ответить с цитированием
Juice_Green
 
Аватар для Juice_Green

Регистрация: Dec 2005
Адрес: Новосибирск
Сообщений: 529
Отправить сообщение для Juice_Green с помощью ICQ Отправить сообщение для Juice_Green с помощью Skype™
а разве объект удалится из памяти, если на нем висят слушатели?

Старый 20.11.2009, 14:54
switcher! вне форума Посмотреть профиль Отправить личное сообщение для switcher! Найти все сообщения от switcher!
  № 3  
Ответить с цитированием
switcher!

Регистрация: May 2009
Сообщений: 220
Цитата:
а разве объект удалится из памяти, если на нем висят слушатели?
удалится

P.S.
Цитата:
При удалении объектов, как известно, слушатели не удаляются автоматически
удаляются. При удалении объектов.
Если объект пригоден для сборки мусора, но еще не удален - слушатели по-прежнему работают.


Последний раз редактировалось switcher!; 20.11.2009 в 14:59.
Старый 20.11.2009, 15:15
Himerets вне форума Посмотреть профиль Отправить личное сообщение для Himerets Найти все сообщения от Himerets
  № 4  
Ответить с цитированием
Himerets
 
Аватар для Himerets

Регистрация: Oct 2009
Адрес: Калининград
Сообщений: 134
Как ты удаляешь объект?

Старый 20.11.2009, 15:17
Juice_Green вне форума Посмотреть профиль Отправить личное сообщение для Juice_Green Посетить домашнюю страницу Juice_Green Найти все сообщения от Juice_Green
  № 5  
Ответить с цитированием
Juice_Green
 
Аватар для Juice_Green

Регистрация: Dec 2005
Адрес: Новосибирск
Сообщений: 529
Отправить сообщение для Juice_Green с помощью ICQ Отправить сообщение для Juice_Green с помощью Skype™
to switcher!: что то ваша теория не работает

Код AS3:
import flash.events.*;
import flash.display.*;
 
var t:Sprite = new Sprite();
t.addEventListener(Event.ENTER_FRAME, function(e:Event){trace(getTimer());});
 
t = null;
t=new Sprite();

Старый 20.11.2009, 15:34
switcher! вне форума Посмотреть профиль Отправить личное сообщение для switcher! Найти все сообщения от switcher!
  № 6  
Ответить с цитированием
switcher!

Регистрация: May 2009
Сообщений: 220
это потому, что размер приложения слишком мал и GC бездействует.
Читаем Мука - страница 326 ("Сборка мусора в действии")

Старый 20.11.2009, 15:42
Juice_Green вне форума Посмотреть профиль Отправить личное сообщение для Juice_Green Посетить домашнюю страницу Juice_Green Найти все сообщения от Juice_Green
  № 7  
Ответить с цитированием
Juice_Green
 
Аватар для Juice_Green

Регистрация: Dec 2005
Адрес: Новосибирск
Сообщений: 529
Отправить сообщение для Juice_Green с помощью ICQ Отправить сообщение для Juice_Green с помощью Skype™
switcher! , ну так то да, пардон - поторопился
Касеал, предположу , что результатом практического применения будет полная непредсказуемость, так что лучше в полность подготовить объект для gc, чем частично

Старый 20.11.2009, 16:05
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 8  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Switcher!, тот же самый Мук на стр 263-265...
Цитата:
По умолчанию объект, регистрирующий приемник для определенного события, хранит ссылку на этот приемник до тех пор, пока его регистрация для указанного события не будет отменена явно, даже если в программе не осталось других ссылок на этот приемник.
То есть дело не в gc.
Дело в том, что если при возникновении некоего события должен выполниться метод экземпляра, то (даже если сам экземпляр был явно mc = null) ссылка на этот экземпляр продолжает висеть в памяти - следовательно для gc объект недоступен.
Эта ситуация решается использованием "слабой ссылки" при подписке на события
__________________
...вселенская грусть

Старый 20.11.2009, 16:18
switcher! вне форума Посмотреть профиль Отправить личное сообщение для switcher! Найти все сообщения от switcher!
  № 9  
Ответить с цитированием
switcher!

Регистрация: May 2009
Сообщений: 220
gloomyBrain, почитайте внимательно тему. Речь идет об объекте, на котором висят слушатели. А НЕ об объекте, который в этом слушателе указывает свой метод, как метод-обработчик.

Старый 20.11.2009, 16:23
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 10  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Согласен. *ушел просыпаться*
__________________
...вселенская грусть

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

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

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


 


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


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