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

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

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

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
По умолчанию правильное удаление слушателей при наследовании

есть класс который наследуется от MovieClip,
к конструкторе определяется слушатель
Код AS3:
this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
ну и callback его
Код AS3:
public function onAddedToStage(e:Event):void {
			this.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
			parent.addEventListener(GeometryEvent.UPDATE_CORD_POINT, updateXYCordPoint);
		}
смотрим далее

есть другой класс который наследуется от этого
в нем нужно переопределить тот самый callback
Код AS3:
override public function onAddedToStage(e:Event):void {
			super.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
			parent.parent.addEventListener(GeometryEvent.UPDATE_CORD_POINT, updateXYCordPoint); // добавляем нового слушателя
			this.addEventListener(GeometryEvent.DELETE_POLY_POINT, deletePointFromPoly);
		}
возник вопрос понимания, в случае если б в родительском классе слушатель весел на parent..... как его нужно затереть из потомка в переопределенном методе

Старый 24.09.2009, 17:10
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 2  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Внутри обработчика события можно отписаться от него, ничего больше не зная:
Код AS3:
(e.target as IEventDispatcher).removeEventListener(e.type, arguments.callee)
__________________
тонкий тролль, осеянный благодатью

Старый 24.09.2009, 17:24
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код AS3:
parent.parent.addEventListener(GeometryEvent.UPDATE_CORD_POINT, updateXYCordPoint);
Вот эта строчка очень жестокая... а что если parent == root или stage?
__________________
Hell is the possibility of sanity

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

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
воо это уже интересный момент, всегда была идея именно такой отписки, спасибо буду использовать,

но здесь вопрос в другом, как отписываться от слушателей которые породил родитель причем он сам слушаем объект в котором сам находиться, просто для меня достаточно путанная иерархия получается

Добавлено через 56 секунд
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Код AS3:
parent.parent.addEventListener(GeometryEvent.UPDATE_CORD_POINT, updateXYCordPoint);
Вот эта строчка очень жестокая... а что если parent == root или stage?
в моем случае такого не может быть уж поверьте, у всех находяться достаточно жесткие строки)) на то мы здесь чтоб учиться)

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

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

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


 


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


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