检查clicked元素是否在IVisualElement(parent)中

时间:2010-05-27 11:12:46

标签: flex flash actionscript-3 actionscript

我正在尝试检查一个被点击的元素是否在Flex 4中的IVisualElement内。所以我想要“如果这个元素在这个元素中,那么执行函数”。

我知道'父'属性但是当我的元素不是元素的直接子元素但是例如3级深度时,这似乎不起作用。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

遍历显示列表,直到您点击IVisualElementStage。如果你点击Stage,就输了。

function isInsideIVisualElement(child:DisplayObject):Boolean
{
  var p = child.parent;
  while(p != null)
  {
    if(p is Stage)
      return false;
    if(p is IVisualElement)
      return true;
    p = p.parent
  }
  //p is null
  return false;//or throw error: child is not addChilded to begin with
}