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

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

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
По умолчанию Не изобрели ли способ выяснить, что препятствует удалению объекта?

Вроде делаю все правильно. Все листенеры чищу, таймеров изначально нет, из родителя со сцены удаляю, из массива, в котором он был учтен, удаляю, сам родитель из памяти удаляется, а этот объект как был в памяти, так и висит (смотрю через профайлер FD).

Совершенно алогичное поведение. Не появился у нас способ вытащить как нибудь информацию "я не удаляюсь, потому что..."?

Старый 02.08.2013, 11:09
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Профайлер сам может ссылку задержать на объект.
А способов нет
__________________
тут я

Старый 02.08.2013, 11:45
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 3  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Интересно, а можно ли добраться до удаленного объекта, чтобы его опросить?

Так, в порядке бреда.

Ставим AnybodyHereQuestionDispatcher, который по определенному интервалу пускает в эфир вопрос ANYBODY_HERE. Даем ему статический инстанс (AnybodyHereQuestionDispatcher.instance), а в сам объект ставим листенер на событие ANYBODY_HERE от него. По идее, такой листенер не должен помешать удалить объект. В самом объекте по получению события ANYBODY_HERE в ответ отправляем событие I_AM_HERE с бабблзом, которое ловим на верхнем уровне и через которое заново получаем доступ к удаленному ранее объекту.

Старый 02.08.2013, 12:49
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 4  
Ответить с цитированием
AlexLucas
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
А как он словит ANYBODY_HERE и как вы словите I_AM_HERE если вы удалили объект отовсюду ?
Возможно через сигналы можно, но в сигнале наверное сохраняется ссылка на объект и он всё равно не удалится ?
__________________
Oomph

Старый 02.08.2013, 13:02
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 5  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
AlexLucas,
Через слабую ссылку диспетчера?
Удаляемому объекту ничто не мешает обратиться к внешним классам или вызвать трейс.
__________________
Дети не должны знать о своих родителях

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
А как он словит ANYBODY_HERE и как вы словите I_AM_HERE если вы удалили объект отовсюду ?
Но он-то как раз и не удалился.
Он сидит в памяти, жрет ресурс и даже, не исключаю, что-то делает.

И отправить ему событие I_AM_HERE (да, со всплывающим я глупость сморозил) вот таким образом вроде никто не помешает?

Код AS3:
AnybodyHereQuestionDispatcher.instance.dispatchEvent(new Event(AnybodyHereQuestionDispatcher.I_AM_HERE));
И так же слушать диспетчера внутри объекта:

Код AS3:
AnybodyHereQuestionDispatcher.instance.addEventListener(AnybodyHereQuestionDispatcher.I_AM_HERE, onDispatcherRequest);
А диспетчер будет слушать сам себя:

Код AS3:
this.addEventListener(AnybodyHereQuestionDispatcher.I_AM_HERE, onAnyObjectResponse);

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

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

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


 


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


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