获取一系列特定的添加子项

时间:2011-04-12 00:07:31

标签: arrays actionscript-3 loops children

我正在使用以下数组将子项添加到舞台:

for(var i=0;i<6;i++) {
    var aCherry=new cCherry()
    aCherry.y=10
    aCherry.x=10+100*i
    stage.addChild(aCherry)
}

现在我想根据另一个数组修改每个樱桃。像这样:

var cherryLetter:Array=[1,0,0,0,0,0]
    for(i=0;i<6;++) {
        if(cherryLetter[i]) stage.getChildByName("aCherry")[i].y+=90
    }

显然stage.getChildByName("aCherry")[i]不正确,但是来自JavaScript这对我来说是最有意义的,应该准确地描绘我想要读到这些内容的人。那么,我该怎么做呢?这是一系列的孩子在某个名称类下添加到舞台上(所以如果需要的话,cCherry的数组也可以工作),然后以类似于上述循环的方式使用它们。

1 个答案:

答案 0 :(得分:1)

根据使用getChildByName()查找cCherry类实例的愿望,以下是我对代码外观的建议。请注意,我在示例中将类名更改为Cherry(我建议使用,因为大写类名是AS3约定)。此外,最好使用分号结束语句。虽然它通常是可选的,但是有些情况下省略分号会很难追踪运行时错误,所以我建议让他习惯使用它们。我还建议在所有变量声明中包含类型,例如var aCherry:Cherry中所示。

var i:int;
for(i=0; i<6; ++i)
{
    var aCherry:Cherry=new Cherry(); // Note, it's my recommendation that you rename cCherry class to Cherry (convention)
    aCherry.y=10;
    aCherry.x=10+100*i;
    aCherry.name = "aCherry" + String(i); // String() cast for clarity only, not necessary
    stage.addChild(aCherry);
}

var cherryLetter:Array=[1,0,0,0,0,0];
for(i=0; i<6; ++i)
{
    var cherry:Cherry = stage.getChildByName("aCherry" + String(i)) as Cherry;
    if(cherry && cherryLetter[i]) cherry.y += 90;
}