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

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

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

Регистрация: Feb 2007
Сообщений: 563
мне нравиться такой подход -
удалять листенер как только программа перестает в нем нуждаться, если это происходит одновременно с удалением объекта, то одновременно сносить листенеры и сам объект.
Но еще более прикольно выстроить таким образом проект чтобы сам объект не удалять никогда, а лишь дективировать его и если нужно модифицировать и запускать снова.

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

Регистрация: Mar 2009
Сообщений: 36
Отправить сообщение для nachalnik с помощью Skype™
спасибо за указание пути. погружаюсь в поиски инфы

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Так-так-так. Всегда по старинке чистил все последовательно: удалить из отображения, убить слушателей, занулить ссылку. А тут, оказывается, можно и не убивать слушателей, ибо можно поставить пятый параметр в логическую единицу. Ага. Итого мы имеем экономию в строчках.
Хм, Николай Мукк'офф, помнится, писал, мол, слабые ссылки хороши, но не всегда. Мол, слушатели могут удалиться в ненужный момент, потому что ГЦ так пожелал. Я не прав?
__________________
тут я

Старый 25.06.2010, 15:24
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 4  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Я не агитирую за неудаление руками слушателей, я за то, чтоб использовать слабые ссылки в слушателях как страховку на случай, если забудут/будет неудобно руками удалять. Плюс пока GC не съест слушателя - он может вызываться и жрать проц(ну в случае мышиных евентов не будет, понятно).
Если в слушателе используется анонимная функция, единственная ссылка на которую - в слушателе, то GC её в "ненужный момент" съест. Это есть (и это описано в доке). В остальном - всё ок (или есть баг, что очень врядли).


Последний раз редактировалось -De-; 25.06.2010 в 15:26.
Старый 25.06.2010, 15:44
Сайлас вне форума Посмотреть профиль Отправить личное сообщение для Сайлас Найти все сообщения от Сайлас
  № 5  
Ответить с цитированием
Сайлас

Регистрация: Mar 2008
Сообщений: 259
Не всегда работает стабильно слабая ссылка, слушатели слетают раньше времени часто в случае локальных переменных (даже на сцене когда они)

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

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

Старый 25.06.2010, 16:45
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 7  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Пример бы, это тогда баг, а что-то не нарыл я про такое.
Не бывает локальных DisplayObject'ов, бывают локальные ссылки на них. И в случае добавления их на сцену добавляется нормальная ссылка. Получается какая-то "полуслабая" ссылка - обьект на сцене не мрёт, а слушатель - мрёт.

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Ага, нашел:
[IMG]http://s40.***********/i090/1006/0d/1410bda9d883t.jpg[/IMG]
Это не в упрек, это просто информативная выдержка из книги. А двумя страницами ранее было сказано про опасность анонимных функций и слабые ссылки как помощники в их удалении.
__________________
тут я

Старый 28.06.2010, 11:10
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 9  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
и охота вам доверять и без того не совсем "умному" GC с слабыми ссылками, он и так чистит как ему нравиться, а вы ему еще такие важные вещи хотите доверить.
Нет, с листенерами нада все четко - в нужном месте поставили, пропала необходимость, сообщили товарищу из уборочного бюро - "приберите тут как только у вас появиться свободная минутка" и все...иначе кучи багов не избежать, все это ИМХО на личном опыте.


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

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

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


 


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


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