0

この例の 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);
}

ありがとう、ロバート

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

ドム、どうもありがとう。それはとてもうまくいきました。今、これらの値を追加しようとしていますが、この関数で 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());
}

これで私を助けてくれませんか。再度、感謝します。

4

1 に答える 1

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);
    }
}
于 2012-05-02T09:58:40.567 に答える