有没有办法检查DisplayObject A是否是DisplayObject B的后代?

ham*_*lin 1 flash displayobject actionscript-3

我希望能够快速检查给定的DisplayObject是否是另一个DisplayObject的后代(不是继承意义上的 - 即子,孙子,曾孙,曾孙子等).

似乎没有本地方法来做到这一点,我只能想到两种方法来实现它:

  1. 创建所有嵌套循环的母亲.似乎有点,我不知道,错了?
  2. 在'孩子'处发送一个冒泡事件,并检查潜在的'父母'是否收到它.

我现在正在尝试后者,但会欣赏一些意见.我想创建一个很好的实用程序静态函数,例如:

static public function isDescendantOf(child:DisplayObject, parent:DisplayObjectContainer):Boolean { 

    var isDescendant: Boolean = false;

    // perform some magical 
    // check that returns true 
    // if it is a descendant

    return isDescendant;
}
Run Code Online (Sandbox Code Playgroud)

alx*_*lxx 7

圣角驼鹿,事件......

parent.contains(child);
Run Code Online (Sandbox Code Playgroud)

请参阅DisplayObjectContainer.contains()的参考.