0

所以我要做的是遍历数组“maps”的每个元素,其中包含4个movieclips和look,以及每个movieclips中的孩子,看看哪些是“Block”类型。但是我收到 #2006 错误,我不知道为什么,有人可以帮忙吗?

function findBlocks() 
{
    trace("findBlocks()");

    for (i=0; maps.length; i++)
    {
        for (var j=0; maps[i].numChildren; j++)
        {
            var mc = maps[i].getChildAt(j);
            if (mc is Block)
            {
                blocks.push(mc);
            }
        }
    }
    trace("blocks array: " + blocks);
}
4

1 回答 1

3

你的 for 循环条件不正确,试试这个:

for (var i=0; i < maps.length; i++){
    for (var j=0; j < maps[i].numChildren; j++){
        var mc = maps[i].getChildAt(j);
        if (mc is Block){
            blocks.push(mc);
        }
    }

}

您必须记住,数组和显示列表从 0 开始,因此列表中最后一个元素的索引是长度为 1,在显示列表的情况下为 numChildren-1

i < maps.length

j < maps[i].numChildren 

是什么解决了问题

于 2013-03-30T22:11:53.753 回答