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

Регистрация: May 2009
Сообщений: 220
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Нет, просто в хелпе в цепочке наследования пропущен DisplayObjectContainer.
наследование в AS3 предполагает получение наследником ВСЕХ свойств. Это значит, что будь SimpleButton наследником DisplayObjectContainer, то как минимум можно было бы вызвать addChild, пусть даже он был переопределен на выброс ошибки. Однако, этого сделать нельзя.

Хорошо, допустим в плеере нативные классы сделаны на си с возможностью наследования реализации (я в си не знаток, но допустим). И копируются только внутренние механизмы DisplayObjectContainer. Тогда на кой черт в свободном доступе (хоть и переопределенными) у Stage оставили весь этот балласт из неиспользуемых свойств? Исключительно потому что "официально" Stage наследуется от DisplayObjectContainer? Типа "спалились"? Это глупо.

И потом, подобные финты с сокрытием реальных родителей (в цепочке наследования) чреваты костылями. Например, в describeType писать:
Код AS3:
if (value is SimpleButton || value is TextField) /*скрываем DisplayObjectContainer*/;
или заводить отдельное свойство/объект, которые содержит то, что нужно показать программеру, в противовес реальному.
Так что ли ?


Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Что то в голову не приходят идеи как это можно проверить. Поделитесь идеей, пожалуйста.
потести скорость диспатча без баблинга: EventDispatcher, Sprite и наследника EventDispatcher с переопределенным dispatchEvent. Например так:
Код AS3:
override public function dispatchEvent(event:Event):Boolean {
	var b:Boolean = true;
	if (b) return super.dispatchEvent(event);
 
	return false;
}