Вход

Просмотр полной версии : XML объясните на пальцах, плз


littleannika
19.04.2007, 17:26
Никогда не работала с флеш-скриптом, поэтому не догоняю:

Что конкретно нужно сделать с XML-файлом, чтобы прочитать значения из нод (и поместить в текст во флеш)?

В хелпе есть только описания функций и т.п., а как использовать - не понятно.

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

CorC
19.04.2007, 17:36
А вы не пробовали по этим функциям потыкать?
Там же примеры есть, даже не на пальцах
http://livedocs.adobe.com/flash/8/main/00002876.html#wp516988

0xFFFFFF
19.04.2007, 17:42
http://www.artlebedev.ru/tools/technogrette/etc/flash-xml/

screamge
19.04.2007, 17:46
http://fordesign.info/547_0_144.html

littleannika
19.04.2007, 17:51
Flash script:
var my_xml:XML = new XML();
my_xml.load("xml.xml");
my_xml.ignoreWhite = true;

trace(my_xml.firstChild.nodeName);
XML:
<?xml version="1.0" encoding="windows-1251"?>
<root><name>Burj Dubai</name></root>

Результат: undefined

1. Где искать баг?
2. Как достучаться до значения с теге name? - my_xml.firstChild.firstChild.nodeValue ?

etc
19.04.2007, 17:56
1. В том, что загрузка асинхронная с кодом и не происходит сразу после того, как написано load. Для этого сущствует метод onLoad у XML.
2. См. выше.

screamge
19.04.2007, 17:57
1. ignoreWhite должен быть до load.
2. кодировка документа должна быть в UTF-8

littleannika
19.04.2007, 18:00
Как с onLoad-ом работать?

etc
19.04.2007, 18:03
http://livedocs.macromedia.com/flash/8/main/00002876.html

CorC
19.04.2007, 18:06
onLoad надо - это принимает как бы данные
а load тоже надо, это посылает :)

screamge
19.04.2007, 18:10
кстати onLoad тоже желательно ставить до load

littleannika
19.04.2007, 18:13
А может кто-нибудь просто кусочек кода написать, где будет загружаться xml из файла (уже готового и закачанного)?

Хелп мне не понятен абсолютно в этом плане...

littleannika
19.04.2007, 18:15
onLoad - это своя функция, которая запускается сразу после загрузки?

screamge
19.04.2007, 18:17
нет, onLoad это событие стартующее после загрузки файла. А что вы привяжите на это событие дело ваше.

littleannika
19.04.2007, 18:53
Есть у меня во флешке какой-то текст, на слой к которому я повесила скрипт.
Вот такой код его меняет на "Name N 1":
this.Property_name.text="Name N 1";

Как записать в этот текст значение ноды из XML ?

var my_xml:XML = new XML();
my_xml.ignoreWhite = true;

my_xml.onLoad=function(success:Boolean){
if (success) {
trace(my_xml.firstChild.firstChild.firstChild.nodeValue);
this.Property_name.text=my_xml.firstChild.firstChild.firstChild.nodeValue;

}
}

my_xml.load("xml.xml");

XML:
<?xml version="1.0" encoding="UTF-8"?>
<root><name>Burj Dubai</name></root>

screamge
19.04.2007, 18:56
сейчас привяжу исходник

littleannika
19.04.2007, 19:03
trace(my_xml.firstChild.firstChild.nodeValue); пишет "Null"
а trace(my_xml.firstChild.firstChild.firstChild.nodeValue); - Burj Dubai

тексту вообще все по барабану

screamge
19.04.2007, 19:06
вот один из вариантов

littleannika
19.04.2007, 19:10
Т.е. лучше значения в атрибуты помещать?

0xFFFFFF
19.04.2007, 19:12
trace(this.Property_name) : )

0xFFFFFF
19.04.2007, 19:13
внутри функции onLoad this - это текущий объект - xml загруженный.

littleannika
19.04.2007, 19:26
угу "this." явно лишний)

littleannika
19.04.2007, 19:37
Спасибо всем огромное!

(Буду думать, как закачивать в флешку фотку, ждите новых вопросов, гыгы)