![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2012
Сообщений: 19
|
Имеется xml-файл, с которого вытягивается информация и заносится в соответствующие поля. Количество дочерных элементов не фиксированное, поэтому приходится запускать цикл с числом шагов равно длине xml.
Тестовые поля создаются посредством TextField() (далее операции с ним описывать не буду - все покажу в коде) и заполняются данными. Вот часть кода, где происходит заполнение поля: function completeListener(e:Event):void { extendensXML = new XML(urlLoader.data); trace("Загрузка данных успешно завершена!"); var text_level:TextField = new TextField(); text_level.x = xx; text_level.y = yy; text_level.width = 200; text_level.height = 50; addChild(text_level); text_level.text = extendensXML.item[0].level; //и еще несколько однотипных полей //начало цикла вывода данных с XML-файла и заполнение полей for (var i:int = 0; i < extendensXML.*.length(); i++) { var text_level + "i":TextField = new TextField(); // рядом с переменной должен появляться индекс номера записи и создаваться текстовое поле с одноименным названием; text_level.x = xx; text_level.y = yy; text_level.width = 200; text_level.height = 50; addChild(text_level); text_level.text = extendensXML.item[i].level; } } Добавлено через 22 минуты Видно сложную я задачу задал и себе и остальным... |
|
|||||
|
Не понимаю, в чем проблема? Вам хочется, чтобы переменная называлась "text_level+i"?
|
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
зачем вам у экземпляров текстфилда такие названия?? если вам нужно чтобы тексфилд хранил его порядковый номер из хмл, создайте класс наследуемый от текстфилд, создайте в нем переменную и записывайте туда номер
package { public class TextLevel extends TextField{ private var num:int; public function TextLevel(posX:Number,posY:Number,inputText:String) { this.x = posX; this.y = posY; this.width = 200; this.height = 50; this.text = inputText; } public function setNumber(num:int) { this.num = num; } } } примерно так Последний раз редактировалось Isfet; 24.08.2012 в 07:45. |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 19
|
Добавлено через 30 секунд
Именно |
|
|||||
|
Для этого нужно сделать класс, в котором создается текстовое поле динамическим.
package { public dynamic class SomeClass extends Sprite { public function SomeClass() { for (var i:int = 0; i < 10; i++) { this['textField' + i] = new TextField(); } } } } Хотя я вообще не понимаю зачем это нужно. Такие вещи обычно делаются с помощью массивов |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 19
|
Запихнуть все названия будущих переменных в массив, а потом обращаться к нужному элементу массива?
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 19
|
А вот здесь не понял. Просто такими операциями с массивами я не занимался =(
|
|
|||||
|
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 19
|
А если будет обращения сразу ко всем текстовым полям? Ведь имена всех будут одинаковыми, судя из этого кода. Я так понимаю, что необходимо создавать TextField’ы, используя одну стоку из Вашего кода
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|