Actionscript 3 如何检测显示对象中有多少对象?(AS3)
我正在做一个随机生成硬币的游戏。一旦一枚硬币(一次在屏幕上出现多枚)被收集起来,它就会在另一个地方重生。我有几种方法可以做到这一点,但要想取得进展,我需要回答以下问题:Actionscript 3 如何检测显示对象中有多少对象?(AS3),actionscript-3,Actionscript 3,我正在做一个随机生成硬币的游戏。一旦一枚硬币(一次在屏幕上出现多枚)被收集起来,它就会在另一个地方重生。我有几种方法可以做到这一点,但要想取得进展,我需要回答以下问题: 如何检测显示列表中有多少对象 如何检测对象何时从显示列表中删除 提前感谢您的回答。请看这里: 它包含您需要的所有内容,对于您的第二个问题,请参见事件部分。要检测对象的数量,您可以执行递归函数,循环遍历每个all子对象,并返回计数 import flash.display.DisplayObjectContainer; func
它包含您需要的所有内容,对于您的第二个问题,请参见
事件部分。要检测对象的数量,您可以执行递归函数,循环遍历每个all子对象,并返回计数
import flash.display.DisplayObjectContainer;
function numAllChildren($do:DisplayObjectContainer):int{
var $c:int = 0;
for (var $i:int = 0; $i < $do.numChildren; $i++){
if($do.getChildAt($i) is DisplayObjectContainer){
$c += numAllChildren($do.getChildAt($i) as DisplayObjectContainer);
}
$c++;
}
return $c;
}
trace(numAllChildren(_mc));
导入flash.display.DisplayObjectContainer;
函数numAllChildren($do:DisplayObjectContainer):int{
var$c:int=0;
for(变量$i:int=0;$i<$do.numChildren;$i++){
如果($do.getChildAt($i)是DisplayObjectContainer){
$c+=numAllChildren($do.getChildAt($i)作为DisplayObjectContainer);
}
$c++;
}
返回$c;
}
微量元素(numAllChildren(_-mc));
若要查看是否发生了更改,您需要在添加和/或删除时使用事件侦听器。但是你需要把它放在每个显示对象上
这完全取决于项目的设置。使用[yourDisplayObject].numChildren
您将获得任何给定显示列表的子项数。您自己也可以使用removeChild将这些对象从显示列表中删除,因此您可以“检测”它。例如,您可以在每次删除和对象时触发和事件。