XML дает неопределенный результат в ActionScript 2.0

Пока что так хорошо с языком ActionScript. Я не упал в плохом состоянии, но все же у меня есть одна хорошая проблема, с которой я не могу справиться!

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


Это XML-документ:

<?xml version="1.0" encoding="utf-8"?>
<root>
    <document>
        <title>What is lorem ipsum ?</title>
        <description>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</description>
    </document>
</root>

** Код ActionScript следующий: *

function loadXML(loaded)
{
    if (loaded)
    {
        xmlNode = this.firstChild;
        _root.simple_title = [];
        _root.simple_description = [];
        total = xmlNode.childNodes.length;
        for (i = 0; i < total; i++)
        {
            xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
            xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
        }
    }
    else
    {
        trace("XML is not loaded!");
    }
}

xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("simple.xml");

Теперь все в порядке в корневой временной шкале, на самом деле это работает, например, у меня есть один видеоролик с именем content, и внутри у меня есть 2 текстовых поля, текст заголовка и описания, теперь я пытаюсь вызвать root, и это работает.

content.titleID.text = simple_title[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
content.descriptionID.text = simple_description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;

Теперь я пытаюсь вызвать из содержимого мувиклипа childNodes из root, например:

titleID.text = _root.simple_title[0]
descriptionID.text = _root.simple_description[0]

Теперь XML дает неопределенный результат, да, это проблема, с которой я не могу справиться.


person Alexander    schedule 13.09.2010    source источник


Ответы (1)


Хорошо, вы загружаете свой XML и обрабатываете его ...

function loadXML(loaded) {
 if (loaded) { 
   xmlNode = this.firstChild;
   _root.simple_title = [];
   _root.simple_description = [];
   total = xmlNode.childNodes.length;
   for (i = 0; i < total; i++) { 
     xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
     xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue; 
   } 
 } else { 
   trace("XML is not loaded!"); 
 }
}

xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("simple.xml");

Затем вы делаете ...

content.titleID.text = simple_title[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;     
content.descriptionID.text = simple_description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;

Когда вы это сделаете, проверьте значение i ... Я ожидал, что это будет undefined. Вероятно, поэтому у вас ошибка.

person ocodo    schedule 15.11.2010