获取组中的所有元素

时间:2012-05-02 00:40:51

标签: actionscript-3 flex flex4.5 getelementbyid

如何在此示例中访问TextInput值?

我正在使用Flex 4.5

<s:VGroup id="qItems" width="100%" styleName="qMain">
  <s:HGroup id="id_1"><s:TextInput id="total_1" width="100" text="1.00"/></s:HGroup>
  <s:HGroup id="id_2"><s:TextInput id="total_2" width="100" text="1.00"/></s:HGroup>
  <s:HGroup id="id_3"><s:TextInput id="total_3" width="100" text="1.00"/></s:HGroup>
</s:VGroup>

我只能访问HGroup ID,但我不知道如何更深入地使用TextInput来添加总文本的值。

这是我用来访问HGroups的函数

protected function viewElements(event:MouseEvent):void{
  var messageText:String = "There are " + qItems.numElements + " elements in the MX Panel.";

  for (var i:int = 0; i < qItems.numElements; i++)
  {
    var stringName:String = qItems.getElementAt(i) + "";
    if (stringName.indexOf(".") > 1)
    {
      stringName = stringName.substr(stringName.lastIndexOf(".")+1, stringName.length);
    }
    messageText += "\n" + (i+1) + ". " + stringName;
  }
  Alert.show(messageText, "Show Elements", Alert.OK);
}

谢谢,罗伯特

+++++++++++++++++++++++++++++++++++++++++++++

Dom,非常感谢。这非常有效。 现在我正在尝试添加这些值但是我正在使用此函数获得NaN结果

protected function viewElements(event:MouseEvent):void{
  var totalField:Number;
  var sum:Number;
  for (var i:int = 0; i < qItems.numElements; i++)
  {
    var parentGroup:Object = qItems.getElementAt(i);
    for (var j:int = 0; j < parentGroup.numElements; j++) 
    {
      var childGroup:Object = parentGroup.getElementAt(j);
      totalField = childGroup.getElementAt(4).text;
    }
    sum += totalField;
  }
  Alert.show(sum.toFixed(2).toString());
}

你能帮我解决这个问题。 再次谢谢。

1 个答案:

答案 0 :(得分:1)

只需添加另一个for循环就可以了

for (var i:int = 0; i < qItems.numElements; i++)
{
    var currentGroup:Object = qItems.getElementAt(i);

    for(var j:int = 0; j < currentGroup.numElements; j++)
    {
        Alert.show(currentGroup.getElementAt(j).text);
    }
}