引用for循环中的文本字段

时间:2013-07-25 17:54:21

标签: actionscript-3 for-loop

我已经查明了如何做到这一点似乎没有任何效果。 试图在循环中使用i来引用我的所有文本字段并设置它们。 假设我的文本字段名为textField0,textField1,textfield2等。 类似的东西:

for(var i:int = 0; i < numberOfFields; i++)
{
  parent.child.getChildByName("textField" + i).text = stringArray[i];
}

非常感谢任何帮助 感谢

1 个答案:

答案 0 :(得分:0)

让我们假设您的层次结构看起来像这样

0: root:MainTimeline ¬
    0: Background:Shape
    1: textField1:TextField
    2: textField2:TextField
    3: myClip:MovieClip
    4: textField3:TextField

我们在列表中有一些“噪音”,因此对所有这些进行直接迭代可能不是最好的方法。我们可以,并放置一个if语句来测试对象的名称或它的对象类型,或者我们可以创建一个指向每个TextFields的指针的手动列表。在这种情况下,每个文本字段都可以假设存在于任何嵌套容器中。这取决于你的设置。

在上面给出的示例中,您引用了一个名为“child”的对象,这意味着您的层次结构可能看起来像这样......

0: root:MainTimeline ¬
    0: child:MovieClip ¬
        0: textField1:TextField
        1: textField2:TextField
        2: textField3:TextField
    1: myClip:MovieClip // <- assuming that this is the class your code is coming from

所以,你的逻辑是我们使用隐式this引用(this.parent == parent)上升到一个级别,然后下到我们名为child的容器,并迭代它的孩子们(注意:我怀疑情况并非如此,部分原因是它失败了)。

假设相同的层次结构,我可能会这样重写:

for (var i:int = 0; i < parent.child.numChildren; i++) {
    var txt:TextField = parent.child.getChildAt(i);
    txt.text = stringArray[i];
}