ActionScript 3 - получение текстовых значений из TexInput, созданного в компоненте - PullRequest
0 голосов
/ 24 марта 2009

У меня есть макет плитки, содержащий список TextInputs и текстовых полей, я создал эти поля в пользовательском компоненте, используя следующий код:

var newTextInputs:Array = [];
        var newTextLabels = [];
        var space:Number = 30;
        var count:Number = 0;
        for (var i:String in columnsData)
        {
            //create text labels
            var label:Text = new Text();
            label.name = "label" + count;
            label.text = i;
            newTextLabels[count] = label;
            addChild(newTextLabels[count]);

            // create text fields
            var field:TextInput = new TextInput();
            field.name = "field" + count;
            field.width = 100;
            field.height = 25;
            field.text = columnsData[i];
            newTextInputs[count] = field;
            addChild(newTextInputs[count]);
            count++;    
        }

пользователям разрешено редактировать значения в каждом поле TextInput, теперь мне нужно получить новые обновленные значения, однако как я могу получить доступ к этим полям? Поскольку идентификаторы создаются динамически, я не могу просто перейти на componentName.InputFieldName, есть идеи?

Ответы [ 2 ]

2 голосов
/ 24 марта 2009

Я думаю, что вы ищете getChildByName

позднее редактирование: протестировано с Flash и TextField, и оно работает:

trace(TextField(getChildByName('textfield')).text);
1 голос
/ 24 марта 2009

Вы можете добавить обработчик события для события TileList CHANGE; при запуске я думаю, что свойство event.target будет иметь конкретное поле TextInput. В качестве альтернативы вы можете посмотреть на свойство TileList.SelectedItem.

Вы также можете иметь привязку DataProvider к TileList вместо вашего кода, как показано, что будет обрабатывать это автоматически для вас. Попробуйте просто назначить массив NewTextLabels в качестве dataProvider.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...