Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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 如何检测显示对象中有多少对象?(AS3)_Actionscript 3 - Fatal编程技术网

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将这些对象从显示列表中删除,因此您可以“检测”它。例如,您可以在每次删除和对象时触发和事件。