Страница 1 из 3

Получение данных из xml

Добавлено: 24 май 2010, 23:35
dead_luminor
Как подгружать во флэш данные из xml?

допустип есть ответ от php файла

Код: Выделить всё

<?xml version="1.0" encoding="UTF-8"?><response><user><id>user1</id><score>15</score></user><user><id>user2</id><score>12</score></user><id>user3</id><score>12</score></user><id>user4</id><score>12</score></user><id>user5</id><score>12</score></user></response>

как принимать такого рода запросы?

Re: Получение данных из xml

Добавлено: 25 май 2010, 05:02
bodnar

Код: Выделить всё

loader = new URLLoader(...);loader.addEventListener(Event.COMPLETE,completeHandler);function completeHandler(e:Event){trace(loader.data);}

Re: Получение данных из xml

Добавлено: 25 май 2010, 07:53
dead_luminor
это я знаю..я не понимаю как конкретно <user>1</user>записать в текстовую строку user_tf. А score записать в <score>1</score> score_tf....
Ведь оно передается куском цельным...

Re: Получение данных из xml

Добавлено: 25 май 2010, 09:47
bodnar
каким куском? может toString() поможет?

Re: Получение данных из xml

Добавлено: 25 май 2010, 14:01
совесть

Код: Выделить всё

var xmlLoader:URLLoader = new URLLoader();                var xmlData:XML = new XML();                xmlLoader.addEventListener (Event.COMPLETE, LoadXML);                xmlLoader.load (new URLRequest("ТВОЙ ЗАПРОС"));                function LoadXML (event:Event):void                {                for (var i:uint = 0; i < 20; ++i) {tf.text += xmlData.id[i].toString() + "\n";tf.text += xmlData.score[i].toString() + "\n"; }                }



выводим топ 20 пользователей. тебе ведь что-то типа этого надо?

Re: Получение данных из xml

Добавлено: 25 май 2010, 18:10
dead_luminor
выдает ошибку:

Код: Выделить всё

Warning: 3551: Appending text to a TextField using += is many times slower than using the TextField.appendText() method.

вот мой php файл:

Код: Выделить всё

<?php     $db = mysql_connect ("host","baseuser","basepasword");    mysql_select_db("basename",$db);    mysql_query("SET NAMES 'utf8'");     $result = mysql_query("SELECT uid, size from basename order by size desc limit 5",$db);         echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";        echo "<response>";        for ($i=0; $i<mysql_num_rows($myrow);$i++){        $r = mysql_fetch_array($myrow);        echo"<user>";        echo"<id>".$r['id']."</id>";        echo"<score>".$r['score']."</score>";        echo"</user>";}echo "</response>";?>?>
в мускуле две строки id и score

Re: Получение данных из xml

Добавлено: 25 май 2010, 23:57
совесть

Код: Выделить всё

        for (var i:uint = 0; i < 20; ++i) {tf.text += xml.user[i].uid.toString() + "\n";tf_score.text += xml.user[i].score.toString() + "\n"; }

число 20 меняешь на кол-во людей, которых надо вывести. у меня всё работает.

Re: Получение данных из xml

Добавлено: 26 май 2010, 12:43
dead_luminor
незнаю...((
ну запрос прииходит вот такой от php...но во флеш вставить не могу...на твой код ругается

Код: Выделить всё

<response>    <user>        <id> 1000000</id>        <score> 2147483647</score>    </user>    <user>        <id> 15000000</id>        <score> 454645645</score>    </user></response>

Re: Получение данных из xml

Добавлено: 26 май 2010, 14:55
совесть

Код: Выделить всё

var xmlData:XML = new XML("<response><user><id>1000000</id><score> 2147483647</score></user><user><id>15000000</id><score>454645645</score></user></response>"); var count: uint = xmlData.user.length();//сколько юзеров нам пришлоfor (var i:uint = 0; i < count; ++i) {trace(xmlData.user[i].uid.toString());trace(xmlData.user[i].score.toString()); }
у меня всё работает

Re: Получение данных из xml

Добавлено: 26 май 2010, 16:32
dead_luminor
почемуто оно выберает на фанарь какой постить, и постит
не все 5, а только 1 почемуто
причем рандомно как-то...

вместо трэйс я сделал сразу в текстовое поле, может из-за этого?

Код: Выделить всё

tf.text=xmlData.user[i].uid.toString();tf2.text=xmlData.user[i].score.toString();