我正在制作一个随机生成硬币的游戏。一旦硬币(一次在屏幕上多次)被收集,它就会在另一个位置重新生成。我有几种方法可以做到这一点,但为了推进我需要回答这些问题:
如何检测显示列表中有多少个对象?
如何检测何时从显示列表中删除对象?
所有答案都提前得到赞赏。
答案 0 :(得分:1)
用于检测对象数量,你可以做一个循环遍历每个所有子节点的递归函数,并返回计数
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));
要查看是否有更改,您可以在ADDED和/或REMOVED上使用事件监听器。但是您需要将它放在每个DisplayObject上 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/Event.html#ADDED http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/Event.html#REMOVED
答案 1 :(得分:0)
它包含您需要的所有内容,第二个问题请参阅Events
部分。