PDA

Просмотр полной версии : Загрузка из текстового поля в узел XML


rockafella
28.04.2006, 00:47
Вот код, я создал текстовое поле с именем type_txt.
Теперь надо чтобы записанный в это поле текст записался в узел XML

this.createTextField("type_txt", 2, 61.0, 103.0, 100, 15.4);
type_txt.border = true;
type_txt.type = "input";
type_txt.background = true;
type_txt.setNewTextFormat(sSt);
//
this.create_btn.onRelease = function() {

var myXML:XML = new XML();
var el1:XMLNode = myXML.createElement("target");
var el2:XMLNode = myXML.createElement("type");
myXML.appendChild(el1);
el1.appendChild(el2);
var el1t:XMLNode = myXML.createTextNode("type_txt")
el2.appendChild(el1t);
trace(myXML);
}

Естественно что в output выводится
<target><type>type_txt</type></target>

Вопрос,как сделать чтобы вместо type_txt выводилось бы данные записанные юзером в текстовом поле?

дядя Джо
28.04.2006, 02:26
var el1t:XMLNode = myXML.createTextNode(this._parent.type_txt.text)

rockafella
28.04.2006, 13:25
Туперь бы не плохо эти данные отправить. То есть как созданный XML файл отправить.
Например
------------------------------
myXML.contentType = "text/xml";
myXML.ignoreWhite = true;
myXML.send("target.xml");
trace(myXML);
---------------------------

Не создает документ. А как сделать чтобы создать xml файл, например target.xml. Или что больжно быть написано в уже созданнойм xml файле, чтобы данные были там сохранены?

breez38
28.04.2006, 13:32
флеш изначально НЕ умеет создавать файлы, и send() - это отправка содержимого в указанный URL, и только URL, а не как не в локальный файл.

rockafella
28.04.2006, 13:39
Хорошо, тогда что должно быть написано в коде XML документа, в указаном URL, чтобы он принял и отобразил данные.
Например я создал в той же директории где .swf файл target.xml.
Что там должно быть записано чтобы он отобразил
-------------------------
<target><type>type_txt</type></target>
---------------------------------

breez38
28.04.2006, 13:51
где отобразил?
на всякий случай еще раз поясню, что флеш НЕ может ни создавать файлы, ни дописывать в них, ни удалять.
send() отправляет твой документ на указаный URL (скажем _www.myCoolSite.ru/xmlParser.php) который в свою очередь должен получить эти данные и что-то с ними сделать. Это должен быть серверный скрипт, а не просто файл.

Madasan
28.04.2006, 14:05
Хорошо, тогда что должно быть написано в коде XML документа, в указаном URL, чтобы он принял и отобразил данные.
Например я создал в той же директории где .swf файл target.xml.
Что там должно быть записано чтобы он отобразил
-------------------------
<target><type>type_txt</type></target>
---------------------------------XML документ не умеет самостоятельно принимать данные, ему надо туда их засовывать, либо ручками, либо с помощью программы, которая умеет записывать данные в файл, флэш записывать не умеет!

rockafella
28.04.2006, 15:21
Хорошо, с этим все ясно.
Следующий вопрос.
А как передать данные из компонента comboBox

Например я создал comdoBox

this.createObject("comboBox", "ccb", this.getNextHighestDepth());
ccb.addItem ({label:"Здание", data:1});
ccb.addItem ({label:"Ферма", data:2});
ccb.addItem ({label:"Вышка", data:3});
ccb.setSize(101, 20);
with(ccb){
setStyle("color", 0x006699);
setStyle("themeColor", 0xBDD1E3);
setStyle("borderColor", 0x006699);
setStyle("disabledColor ", 0x006699);
}


Теперь данные label нужно передать в XML
var myXML:XML = new XML();
var el1:XMLNode = myXML.createElement("target");
var el2:XMLNode = myXML.createElement("type");
myXML.appendChild(el1);
el1.appendChild(el2);
var el1t:XMLNode = myXML.createTextNode(this.combo_mc.ccb.label)
el2.appendChild(el1t);
trace(myXML);

Например при передачи строчки
var el1t:XMLNode = myXML.createTextNode(this.combo_mc.ccb.label)
В output ничего не возвращается.