![]() |
|
||||||||||
|
|||||
|
Есть вот такой XML:
<battle id1="000" back_url="res/back/lava.jpg" battle_type="blood" timeout="30000"> <left id1="000" type="male" nick="Denisator" clan_name="Stalkers" clan_emblema_url="res/clan_emblema/stalkers.gif"> <stats level="10" health="100" strength="5"/> <ammunition> <head name="Шлем Хаоса" head_url="res/ammunition/head/chaos_helm.png">Сила +100\n Ловкость +30</head> <hands></hands> <hooks></hooks> <body></body> <legs></legs> <foot></foot> <weapon></weapon> <shield></shield> </ammunition> </left> <right id="001" type="male" name="Xflat" clan_name="Stalkers" clan_emblema_url="res/clan_emblema/stalkers.gif"> <stats level="10" health="100" strength="5"/> <ammunition> <head name="Шлем Хаоса" head_url="res/head/chaos_helm.png">Сила +100\n Ловкость +30</head> <hands></hands> <hooks></hooks> <body></body> <legs></legs> <foot></foot> <weapon></weapon> <shield></shield> </ammunition> </right> </battle> var flooring:XML = new XML(data); flooring.ignoreWhite = true; _root.back = flooring.firstChild.attributes.back_url; _root.helm = flooring.firstChild.firstChild.attributes.clan_emblema_url; trace(_root.back); // трейс выдаёт "res/back/lava.jpg" trace(_root.helm); // трейс выдаёт "undefined"
__________________
Это подпись. |
|
|||||
|
Модрон-ветеринар
|
Верно вроде.
У меня выдает Но. Я проверяю с учетом асинхронности загрузки по отношению к выполнению кода, а у вас я этого не наблюдаю. Сделайте так и вы: var xmlData:XML = new XML(); xmlData.ignoreWhite = true ; xmlData.onLoad = loadXML; xmlData.load('config.xml'); function loadXML (success:Boolean) { if (success) { var mainNode:XMLNode = this.firstChild ; _root.back = mainNode.attributes.back_url; _root.helm = mainNode.firstChild.attributes.clan_emblema_url; trace(_root.back); trace(_root.helm); } else { message_tf.text = 'Ошибка связи\nс конфигуратором данных xml'; } }
__________________
Идите первым! Последний раз редактировалось mooncar; 14.05.2011 в 15:37. |
|
|||||
|
Асинхронность у меня учитывалась, но я её при цитировании кода убрал.
var lvSend:LoadVars = new LoadVars(); var lvReceive:LoadVars = new LoadVars(); lvSend.command = 'getBattleInf'; lvReceive.onData = function(data) { //trace(data); _root.loading._visible = false; if (data == null) { _root.textbox.text = 'error'; } else { var flooring:XML = new XML(data); //_root.textbox.text = data; flooring.ignoreWhite = true; // По окончанию загрузки выводим содержимое XML документа _root.back = flooring.firstChild.attributes.back_url; _root.helm = flooring.firstChild.firstChild.attributes.clan_emblema_url; trace(_root.back); trace(_root.helm); play(); } }; lvSend.sendAndLoad("battle.xml",lvReceive,'POST'); stop();
__________________
Это подпись. |
|
|||||
|
Модрон-ветеринар
|
Тем не менее, сам парсинг у вас верный...
А что трейс показывает? И кстати, вы отправляете POST'ом данные, они у вас там обрабатываются как-то? Какой-то скрипт отдает battle.xml?
__________________
Идите первым! Последний раз редактировалось mooncar; 14.05.2011 в 20:25. |
|
|||||
|
Трейс показывает именно то что я написал в первом посте.
trace(_root.back); // трейс выдаёт "res/back/lava.jpg" trace(_root.helm); // трейс выдаёт "undefined" Тоесть первый нод показывает, а следующий нет. Цитата:
__________________
Это подпись. Последний раз редактировалось Denisator; 14.05.2011 в 20:32. |
|
|||||
|
Модрон-ветеринар
|
Посмотреть, какой XML получается из полученной строки, весь.
Там должно выводится все, что в первом посте у вас. Нормально с этим, без обрывов? Добавлено через 6 минут И все же, попробуйте мою схему, если заработает, след. шагом попробуете перевести на скрипт.
__________________
Идите первым! Последний раз редактировалось mooncar; 14.05.2011 в 20:35. |
|
|||||
|
Цитата:
<battle id1="000" back_url="res/back/lava.jpg" battle_type="blood" timeout="30000"> <left id1="000" type="male" nick="Denisator" clan_name="Stalkers" clan_emblema_url="res/clan_emblema/stalkers.gif"> <stats level="10" health="100" strength="5" /> <ammunition> <head name="Шлем Хаоса" head_url="res/ammunition/head/chaos_helm.png">Сила +100\n Ловкость +30</head> <hands /> <hooks /> <body /> <legs /> <foot /> <weapon /> <shield /> </ammunition> </left> <right id="001" type="male" name="Xflat" clan_name="Stalkers" clan_emblema_url="res/clan_emblema/stalkers.gif"> <stats level="10" health="100" strength="5" /> <ammunition> <head name="Шлем Хаоса" head_url="res/head/chaos_helm.png">Сила +100\n Ловкость +30</head> <hands /> <hooks /> <body /> <legs /> <foot /> <weapon /> <shield /> </ammunition> </right> </battle>
__________________
Это подпись. |
|
|||||
|
Модрон-ветеринар
|
Вместо
запиши что-то вроде То есть battle.php отдавать должен будет строку XML-ную, а вот принимать данные GET'ом, то есть в его начале такая строка будет: Другого решения сейчас в голову не приходит, с POST'ом, может кто подскажет. Вообще, у XML есть метод XML.sendAndLoad, может быть подойдет, я его сам не смотрел.
__________________
Идите первым! |
|
|||||
|
Спасибо, Луноход.
Буду делать по твоему способу.
__________________
Это подпись. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|