Форум 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=108759)

willis83 28.02.2008 15:52

Как данные XML присвоить переменным во флэш
 
Надо вытащить данные из ответа сервера.
Есть скриптик на сервере который отвечает на ваш запрос. Ответ в формате xml.
Запрос делается в виде http://www.mysite.com/cgi-bin/index.pl?krug
Ответ сервера в виде
Код:

<radius>6</radius>
<imya>kvadrat</imya>
<polojeniye>center</polojeniye>

Как эти значение присвоить переменным во флэш?
Или хотя бы работать с ними в html, но это уже вопрос не по месту..:rolleyes:
Напишите ещё пожалуйста как сам запрос организовать.
Заранее благодарен

DimasMain 28.02.2008 16:26

Можна почитать здесь
http://flashdocs.net/modules.php?nam...egories&cid=27

willis83 28.02.2008 17:44

перечитал 2 раза, никак не врублюсь... Опишите кому не лень пожалуйста

olexandr 28.02.2008 18:23

Код:

var _xml:XML = new XML('<radius>6</radius><imya>kvadrat</imya><polojeniye>center</polojeniye>');
for (var i = 0; i<_xml.childNodes.length; i++) {
        trace(_xml.childNodes[i].firstChild.toString());
}


willis83 28.02.2008 19:58

Дело в том что я не знаю что ответит сервер.... Могу первую строку написать как
Код:

var _xml:XML = new XML(http://www.mysite.com/cgi-bin/index.pl&krug);
???

Olegg 28.02.2008 20:07

как? в первом посте знал,а теперь не знаешь? или ты имеешь в виду структуру XML,она каждый раз разная?

Fernando Costa 28.02.2008 20:25

делаешь во флеше текстовое поле и в онлоад в него присваиваешь хмл, потом копируешь

willis83 28.02.2008 20:47

Ответ сервера разный в зависимости от параметра с которым ты вызываеш скрипт.


с текстовым поле это круто, можно попробывать

Покажите как онлоад организовать.
Скажем текстовое поле называется xmltext
Напишите код который передаст в него ответ сервера.

Не получается у меня, заранее благодарен

Fernando Costa 28.02.2008 23:59

в хелпе
Цитата:

ActionScript 2.0 Language Reference


ActionScript classes > XML > onLoad (XML.onLoad handler)

willis83 29.02.2008 14:28

Всем огромное спасибо за советы. Начинает получаться!!!!
Но вопросы всё равно возникают:

Надо получить ответ от скрипта с нужными мне параметрами:
Ответ приходит в XML

Код:

...
param1 = "uslov1";
myproc.load("http://www.mysite.ru/cgi-bin/xmlans.pl?"param1);

Компилятор выдаёт что не хвататет скобы или запятой....

iNils 29.02.2008 14:37

Код:

myproc.load("http://www.mysite.ru/cgi-bin/xmlans.pl?" + param1);

willis83 29.02.2008 14:41

И не получается этот ответ передать в переменные FLASH :

Код:

var _xml:XML = new XML(' <OTVET onv1="online" otv2="yes" level="1"</OTVET>');
for (var i = 0; i<_xml.childNodes.length; i++) {
trace(_xml.childNodes[i].firstChild.toString());}

Ответ я тут написал как заведомо готовый, но потом просто вставлю как переменную

iNils 29.02.2008 14:50

Код:

var _xml:XML = new XML ('<OTVET onv1="online" otv2="yes" level="1"></OTVET>');
for (var i = 0; i < _xml.childNodes.length; i++) {
        trace (_xml.childNodes[i].toString ());
}


willis83 29.02.2008 14:51

to iNils

При таком раскладе скрипт возвращает ответ на параметр undefined.

Дело в том что это параметр я не назначаю сам, а он передаётся в функцию. Получается param1 равен не "uslov1", а uslov1 без кавычек... надо его строкой сделать

iNils 29.02.2008 14:59

Откуда передается?

willis83 29.02.2008 15:08

Ой, всё! С передачей параметра скрипту решилось. А вот про передачу параметров не то. У тебя получается

Код:

var _xml:XML = new XML ('<OTVET onv1="online" otv2="yes" level="1"></OTVET>');
for (var i = 0; i < _xml.childNodes.length; i++) {
trace (_xml.childNodes[i].toString ());
//Выводит <OTVET onv1="online" otv2="yes" level="1"></OTVET>

А я думал раскидает переменные onv1 otv2 и level по переменным
(_xml.childNodes0.toString () (_xml.childNodes1.toString () (_xml.childNodes2.toString ()
соответсвтенно

iNils 29.02.2008 15:22

Код:

var _xml:XML = new XML ('<OTVET onv1="online" otv2="yes" level="1"></OTVET>');
for (arg in _xml.firstChild.attributes) {
        trace (arg + "=" + _xml.firstChild.attributes[arg]);
}


willis83 29.02.2008 15:25

Вообще супер!!!!
iNils ты программер!!! Кумир ))))

willis83 29.02.2008 15:41

и ещё вопросик
Если myproc = '<OTVET onv1="online" otv2="yes" level="1"></OTVET>';
как его передать в var _xml:XML = new XML
пытался
Код:

var _xml:XML = new XML (myproc);
Выдаёт несоответсвие типов

Fernando Costa 29.02.2008 15:56

смотри хелп
Код:

ActionScript 2.0 Language Reference
       
 
ActionScript classes > XML > parseXML (XML.parseXML method)


iNils 29.02.2008 15:57

Код:

var myproc:String = '<OTVET onv1="online" otv2="yes" level="1"></OTVET>';
var _xml:XML = new XML (myproc);

это выдает ошибку?

willis83 29.02.2008 16:04

У меня var myproc:XML = new XML(); В эту переменную загружается ответ от скрипта с сервера. Но этот ответ и есть <OTVET onv1="online" otv2="yes" level="1"></OTVET>
Поэтому я думал что прокатит. Менять тип переменной же нельзя?

iNils 29.02.2008 16:12

Типизация для того и нужна, чтобы не было ошибок.

willis83 29.02.2008 16:38

И как теперь эту myproc раскидать по отдельным переменным?

Код:

var myproc1:String = "";
myproc1 = myproc + "";
var _xml:XML = new XML (myproc1);

нее, чёт нифига не выходит

iNils 29.02.2008 17:05

Надо использовать кнопку http://www.flasher.ru/forum/images/r...ttons/edit.gif, а не надо создавать несколько сообщений подряд.

Я не пойму чего вы хотите добиться. Вы прыгаете то туда, то сюда.

willis83 29.02.2008 17:24

Суть в том что я хочу получить ответ от скрипты (скрипт отвечает XML'ом). В ответе содержится несколько переменных, значение которых я хочу передать переменным флэш

iNils 29.02.2008 18:58

А каким боком к этому идет сообщение http://flasher.ru/forum/showpost.php...1&postcount=19 ?


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

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