Flex 3:确定事件目标是否是组件的后代

时间:2010-11-19 09:04:42

标签: flex events drag-and-drop tree

我有一个自定义组件,其中包含几个文本输入字段(以及其他内容),用作树中的行组件。我不得不编写自己的拖放操作,并且几乎完成了启动处理程序(我最后完成),使用mouseDown作为事件,如果关闭则启动。

它基本上可以工作,但是当树扩展到足以显示滚动条时,使用滚动条同时拖动树的一行!不是理想的行为。

查看调试器,我可以看到当拖动树的一行时,currentTarget是树本身,而目标是textInput组件。查看该组件的父级,我可以看到我的自定义组件(包含textInput)几个级别。

我的问题是,是否有一种简单的方法来确定此目标是否来自我的组件,以便只有在这种情况下我才能启动拖动?

event.target是行不通的......我有点期待,因为它不是!

谢谢,

麦克

2 个答案:

答案 0 :(得分:1)

您可以创建一个“标记”界面(即没有方法或属性的界面),然后询问

if ( yourObject is IYourInterface) {

代码。

答案 1 :(得分:1)

使用myComponent.contains(child)

P.S:true时还会返回myComponent == child