Создание нескольких текстовых полей во время выполнения AS2 - PullRequest
0 голосов
/ 25 марта 2010

У меня проблема с созданием нескольких текстовых полей в AS2. Мое приложение AS2 Flash вызывает базу данных (через PHP), а затем получает XML-файл, содержащий несколько объектов. Все, что я хочу сделать, - это циклически проходить по этим объектам XML, а затем создавать TextField (на самом деле это Component, который содержит графику и TextField, но это будет позже) на основе информации из объекта XML.

Я знаю, что могу создать что-то вроде: _root.createTextField ( "myText1", 1,0,0,100,20); myText1.text = "это текст ОДИН";

_root.createTextField ( "myText2", 2,0,30,100,20); myText2.text = "это текст ДВА"; что приведет к 2 текстовым полям, но проблема в том, когда я пытаюсь создать его динамически (например, у меня есть item: myNode [0] .attributes.name (но когда я использую его в: _root.createTextField (myNode [0]. attribute.name, 1, 0, 0, 100, 20), затем я получил ошибку компиляции).

var myXML:XML = new XML();

myXML.ignoreWhite = истина; myXML.load ( "tekst.xml"); var tekst: String = new String (); myXML.onLoad = function (success) { if (success) { var myNode = myXML.firstChild.childNodes; для (я = 0; я

trace ("height:" + myNode [i] .attributes.height); trace ("color:" + myNode [i] .attributes.color); следа (MyNode [я] .firstChild.nodeValue); } } }

Это фактически отслеживает значения, и я действительно могу использовать их при создании компонента, но он не создает компонент с одинаковым именем (очевидно, оба экземпляра указывают на один и тот же объект, поэтому последний виден только видимым).

Пожалуйста, помогите, я много чего пробовал, но без радости.

Заранее спасибо.

1 Ответ

0 голосов
/ 12 апреля 2010

теоретически, хотя функция trace действительно работает правильно, это потому, что она автоматически отформатирована в строку. использование вами узла в createTextField может передаваться как XML и поэтому не может быть использовано. попробуйте вместо этого использовать _root.createTextField(myNode[0].attributes.name.toString(), 1, 0, 0, 100, 20) и посмотрите, что получится.

...