Flex 3: определить, является ли цель события потомком компонента - PullRequest
0 голосов
/ 19 ноября 2010

У меня есть пользовательский компонент с парой текстовых полей ввода (между прочим), который используется в качестве компонентов строки в дереве. Я должен был написать свою собственную обработку перетаскивания и почти закончил обработчик запуска (который я делал в последний раз), используя mouseDown как событие, чтобы выкинуть, если выключено.

В принципе, это работает, но когда дерево достаточно развернуто, чтобы отображалась полоса прокрутки, с помощью полосы прокрутки одновременно перетаскивается строка дерева! Не желаемое поведение.

Глядя в отладчик, я вижу, что при перетаскивании строки дерева currentTarget является самим деревом, а цель - компонентом textInput. Глядя на родителей этого компонента, я вижу свой пользовательский компонент (который содержит textInput) на несколько уровней вверх.

У меня вопрос: есть ли простой способ определить, произошла ли эта цель от моего компонента, чтобы я мог инициировать перетаскивание, только если это так?

event.target, кстати, не работает ... что я вроде ожидал, потому что это не так!

Спасибо

Mike

Ответы [ 2 ]

1 голос
/ 19 ноября 2010

Используйте myComponent.contains(child).

P.S .: Он также возвращает true, когда myComponent == child.

1 голос
/ 19 ноября 2010

Вы можете создать интерфейс «маркер» (т.е. без методов или свойств), а затем задать

if ( yourObject is IYourInterface) {

в вашем коде.

...