Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   XML парсится, но значения не присваиваются... (http://www.flasher.ru/forum/showthread.php?t=112388)

Seloff 26.05.2008 14:02

XML парсится, но значения не присваиваются...
 
Задача:
Забирать из динамически создаваемого на сервере xml-файла атрибуты входящих в него нодов для присваивания текстовым полям внутри флешки значений этих атрибутов.

XML файл

Код:

<?xml version = '1.0' encoding = 'UTF-8'?>
<xml>
<sso_link link="sso_link" />
<forum_link link="forum_link" />
<portal_link link="portal_link" />
<site_link link="site_link" />
<maps_link link="maps_link" />
<search_link link="search_link" />
<stat_link link="stat_link" />
<media_link link="media_link" />
<quartz_link link="quartz_link" />
<gsm_link link="gsm_link" />
<files_link link="files_link" />
<tt_link link="tt_link" />
</xml>

Скрипт флешки (подвешено на нажатие кнопки)
Код:

on(press) {
        myXML = new XML ("myXML.xml");
        myXML.ignoreWhite = true;
        myXML.load("myXML.xml");
        myXML.onLoad = function(success)
{
if(success == true)
{
        trace("XML loaded!"); // проверка, что точно парсится
        //пробовал присваивать сначала переменным, ни фига не получилось
        //var a = myXML.xml.childNodes[0].attributes.link;
        //var b = myXML.xml.childNodes[1].attributes.link;
        //var c = myXML.xml.childNodes[2].attributes.link;
        //var d = myXML.xml.childNodes[3].attributes.link;
        //var e = myXML.xml.childNodes[4].attributes.link;
        //var f = myXML.xml.childNodes[5].attributes.link;
        //var g = myXML.xml.childNodes[6].attributes.link;
        //var h = myXML.xml.childNodes[7].attributes.link;
        //var i = myXML.xml.childNodes[8].attributes.link;
        //var j = myXML.xml.childNodes[9].attributes.link;
        //var k = myXML.xml.childNodes[10].attributes.link;
        //var l = myXML.xml.childNodes[11].attributes.link;
               
                //В итоге решил делать вот таким образом (разумеется сначала было _root.text1.text = a;)
                _root.text1.text = myXML.xml.childNodes[0].attributes.link;
                _root.text2.text = myXML.xml.childNodes[1].attributes.link;
                _root.text3.text = myXML.xml.childNodes[2].attributes.link;
                _root.text4.text = myXML.xml.childNodes[3].attributes.link;
                _root.text5.text = myXML.xml.childNodes[4].attributes.link;
                _root.text6.text = myXML.xml.childNodes[5].attributes.link;
                _root.text7.text = myXML.xml.childNodes[6].attributes.link;
                _root.text8.text = myXML.xml.childNodes[7].attributes.link;
}
}
}


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

Где я дурак, никак понять не могу?

chingachgoog 26.05.2008 14:10

А это что за xml?

myXML.xml.childNodes[0]...

Cрочно меняйте это безобразие на firstChild, например, и смотрите что такое рутовый узел. :)

Seloff 26.05.2008 14:17

Цитата:

А это что за xml?
Это самая главная нода - для красоты сделал =)))

chingachgoog 26.05.2008 14:20

Я понял, что это главный красивый узел, но красота сама по себе в синтаксис AS не входит :)

Seloff 26.05.2008 14:26

Все заработало! Как всегда, мелочь, блин, а сколько нервов подпортила.
Можно тогда сразу доп. вопрос по теме?
1. Код флешки ссылается на xml файл, лежащий в одной папке с флешкой. А если этот файл выдается по урлу, к примеру http://server.com/myXML.xml, то следует писать вот так?
Код:

myXML = new XML ("http://server.com/myXML.xml");
2. Какой параметр у кнопки отвечает за ту урлу, которую она вызывает?
test_button.url?

chingachgoog 26.05.2008 14:33

1) есть относительная и абсолютная адресация. И то и то работает как по сети, так и локально (с известными ограничениями)
2) кнопка должна вызывать getURL()

Seloff 26.05.2008 14:41

1. То есть тот кусочек кода, что я написал - можно назвать ПРАВИЛЬНОЙ абсолютной адресацией? =)
2. Да, это я понимаю. Но если я хочу именно программно указать флешаку на то, что у вот этой кнопки именно такая урла и при нажатии на нее в будущем именно такая урла и должна вызываться? Тогда это будет выглядеть вот так test_button.getURL("http://zzz.ru");?

chingachgoog 26.05.2008 14:56

1) Да. + Посмотрите хелп по XML.load() и XML.loaded например, там как раз в примерах оба способа написаны.
2) Да. + Посмотрите хелп к getURL(), обратите внимание на параметры метода

NB! Тут на форуме выложен хороший переведенный хелп.

Seloff 26.05.2008 14:59

Огромное спасибо, дружище. Вы подарили мне веру в людей =)))))


Часовой пояс GMT +4, время: 21:12.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.