Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何检测某物位于哪一层_Actionscript 3_Actionscript_Layer - Fatal编程技术网

Actionscript 3 如何检测某物位于哪一层

Actionscript 3 如何检测某物位于哪一层,actionscript-3,actionscript,layer,Actionscript 3,Actionscript,Layer,我想知道如何检测实例位于哪一层。例如,我在第一层放了一个名为bob的圆圈,在第二层放了一个名为test的正方形。在actionscript中,我可以检测在哪一层上进行测试 我想使用它,因为在我的游戏中,我将把所有非实体对象放在第一层,所有实体对象放在第二层,我想在actionscript中检测哪些实例位于哪些层中在actionscript 3中没有层这样的东西。对于flashide用户来说,在实际进行SWF编译之前,对某些元素进行分组只是一种方便。在编译时,根据层的层次结构将所有对象添加到阶段,

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


我想使用它,因为在我的游戏中,我将把所有非实体对象放在第一层,所有实体对象放在第二层,我想在actionscript中检测哪些实例位于哪些层中在actionscript 3中没有层这样的东西。对于flashide用户来说,在实际进行SWF编译之前,对某些元素进行分组只是一种方便。在编译时,根据层的层次结构将所有对象添加到
阶段
,但它们都属于具有不同
childIndex
属性的相同
阶段
对象。 要在actionscript 3中使用层的概念,您应该将实体对象添加到
Sprite
MovieClip
中,然后检查相关实例是否属于实体对象,如下所示:

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

我相信在ActionScript中,Flash创作工具中没有层的概念,不同的层被代码简单地解释为舞台子级的顺序。我已经很长时间没有使用Flash创作工具了,所以我不记得了。