我正在尝试检查一个被点击的元素是否在Flex 4中的IVisualElement内。所以我想要“如果这个元素在这个元素中,那么执行函数”。
我知道'父'属性但是当我的元素不是元素的直接子元素但是例如3级深度时,这似乎不起作用。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
遍历显示列表,直到您点击IVisualElement
或Stage
。如果你点击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
}