Получение значений из динамических элементов управления в flex3 - PullRequest
2 голосов
/ 25 мая 2011

Я новичок в Flex 3 и ActionScript.Я хотел бы знать, как я могу получить значение динамических текстовых полей через их идентификатор.

for (var countz:int = 0; countz < questionCount; countz++)          
{
  hboxtextboxz = new HBox();
  txt = new TextInput();
  txt.id = countz + "";
  hboxtextboxz.addChild(txt);
}

Кто-нибудь знает, как я получаю значения из динамических текстовых полей, которые я создал с помощью цикла for?

Ответы [ 2 ]

1 голос
/ 25 мая 2011

Чтобы динамически получить все дочерние элементы контейнера, используйте метод getChildren(). Он вернет массив UIComponent с. Если они являются TextInput экземплярами, приведите их и получите значение, используя свойство text.

Пример кода для получения всех текстовых боксов из контейнера, который находится внутри HBoxes.

var children:ArrayCollection = textBoxContainer.getChildren();
for(var i:int = 0; i < children.length; i++)
{
    var hbox:HBox = HBox(children[i]);
    var textBox:TextInput = TextInput( hbox.getChildAt(0));
    if(textBox != null)
    {
        trace(textBox.text);
    }
}

Приведенный выше код при условии, что ваша структура пользовательского интерфейса имеет вид:

<VBox id="textBoxContainer">
    <HBox>
         <TextInput/>
    </HBox>
     ....
</VBox>
0 голосов
/ 25 мая 2011

Под значениями подразумевается ли текст внутри поля?

Если вы хотите получить к нему доступ внутри цикла for, просто используйте имя переменной:

txt.text

В противном случае, если вы создаете текстовое поле в MXML, вы можете установить его параметр id и получить к нему доступ с помощью этого: (идентификатор текстового поля) .text

должен дать вам текст, который был вставлен в это поле.

...