如何检测哪个层位于某个位置

时间:2012-01-15 14:33:49

标签: actionscript-3 actionscript layer

我想知道如何检测实例位于哪个图层上。例如,我在第一层上放了一个名为bob的圆,在第二层上放了一个名为test的方形。在actionscript中,我可以检测到哪个层是测试的。

我想使用这个,因为在我的游戏中,我将把所有非固体对象放在第一层,所有固体对象放在第二层,我想在actionscript中检测哪些实例位于哪些层

1 个答案:

答案 0 :(得分:2)

在动作3中没有层数这样的东西。在实际进行SWF编译之前,Flash IDE用户只能方便地对某些元素进行分组。在编译时,根据层的层次结构将所有对象添加到stage,但它们都属于具有不同stage属性的同一childIndex对象。 要在actionscript 3中使用图层的概念,您应该将实体对象添加到SpriteMovieClip,然后检查相关实例是否属于实体对象,如下所示: / p>

var solidContainer:Sprite = new Sprite();
this.addChild(solidContainer);
solidContainer.addChild(someSolidObject);

var nonSolidContainer:Sprite = new Sprite();
this.addChild(nonSolidContainer);
nonSolidContainer.addChild(someNonSolidObject);

function isSolid(object:DisplayObject):Boolean {
  if (solidContainer.contains(object)) {
    return true;
  } else  {
    return false;
  }
}

isSolid(someNonSolidObject); // returns false