У меня есть компонент RichEditableText с искробезопасной кожей. И у меня есть слушатель для событий клавиатуры в моем приложении для некоторых настраиваемых горячих клавиш. Я хотел, чтобы пропустить эти горячие клавиши, если я пишу в RichEditableText так я добавил это:Почему объект KeyboardEvent.target возвращает false в условии «is», сравнивая его с его типом?
if (event.target is RichEditableText) {
return;
}
Но по какой-то причине, что не работает. Поэтому я использовал getQualifiedClassName (event.target) и получил spark.components :: RichEditableText. Я импортировал это как:
import spark.components.RichEditableText;
Почему исходный условный номер не работает?
EDIT:
Вот более тщательное протоколирование:
log.info("event.target is RichEditableText " + (event.target is RichEditableText));
log.info("event.target instanceof RichEditableText " + (event.target instanceof RichEditableText));
log.info("event.target.constructor == RichEditableText " + (event.target.constructor == RichEditableText));
log.info("Class(getDefinitionByName(getQualifiedClassName(event.target))) == RichEditableText " + (Class(getDefinitionByName(getQualifiedClassName(event.target))) == RichEditableText));
log.info("event.target actually is " + getQualifiedClassName(event.target));
И результаты:
false
false
false
true
spark.components::RichEditableText
По какой-то причине только самый медленный и самый сложный метод работал. Я могу использовать его, но если кто-то может поделиться своими мыслями о том, почему другие не работают, это было бы здорово.
try event.CurrentTarget – Eric
'FlexSprite' (база всех компонентов Flex) переопределяет' toString() 'для вывода местоположения спрайта в дереве отображения. 'event.target is RichEditableText' * будет * быть истинным, если целью является экземпляр RichEditableText. – Aaron
Как вы все это испытываете? Как вы регистрируетесь? – null