0

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

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

任何帮助将不胜感激谢谢

4

1 回答 1

0

假设您的层次结构如下所示

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

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

在上面给出的示例中,您引用了一个字面上称为“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];
}
于 2013-07-25T18:24:19.683 回答