我正在使用以下数组将子项添加到舞台:
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的数组也可以工作),然后以类似于上述循环的方式使用它们。
答案 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;
}