将具有动态分配名称的对象推送到阵列 - AS3

时间:2013-01-21 14:45:11

标签: arrays actionscript-3 actionscript

这可能吗?例如,如果我有100个名为item1 ..... item100的项目,我可以使用循环将它们全部添加到数组中吗?沿着这些方向......但这显然不起作用:

for (var i:int = 1; i <= 100; i++)
{
     myArray.push("label" + 1);
}

幸运的是我只有10件物品,所以我可以手动完成,但我只是好奇以备日后参考......

谢谢!

4 个答案:

答案 0 :(得分:1)

array access operator将允许您按名称引用属性和对象,因此如果您有:

myArray.push(label1);

您可以改用:

myArray.push(this["label" + 1]);

答案 1 :(得分:1)

取决于你的意思是“项目”。

如果它们是当前类的属性,则使用:

for (var i:int = 1; i <= 100; i++)
{
    myArray.push(this["label" + i]);
}

答案 2 :(得分:0)

您必须获取指向对象实例的链接才能将其推送到数组中,例如,如果文本字段的名称为label1label2等,则可以使用以下代码:

for (var i:int = 1; i <= 100; i++)
{
     myArray.push(labelsContainer.getChildByName("label" + i));
}

答案 3 :(得分:0)

即使对象的名称不遵循任何特定模式但它们必须位于“容器”内(您将容器中的所有对象添加到数组中),您也可以这样做:

for (var i:int = 0; i < containerName.numChildren; i++)
{
    myArray.push(containerName.getChildAt(i);
}