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

Импорт XML во Flash as2.0 и as3.0?

Добавлено: 30 июл 2012, 21:46
vitebsk911
Как такое написать на AS3.0

В качестве урока может кому пригодиться импорт данных в AS2.0

Код первого кадра

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

my_xml = new XML();my_xml.load("sample.xml"); // файл xml в одной директории с файлом swfmy_xml.onLoad = my_function;my_xml.ignoreWhite = 1; function my_function() {        text_field_1.text = my_xml.firstChild.childNodes[0].attributes.name; // в текстовое поле text_field_1 выдаст Beatles    text_field_2.text = my_xml.firstChild.childNodes[1].attributes.name;  // в текстовое поле text_field_2 выдаст Energy    text_field_3.text = my_xml.firstChild.childNodes[0].attributes.pn_time_finish;   // в текстовое поле text_field_3 выдаст до 2.00


Вот код файла xml

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

<?xml version="1.0" encoding= "UTF-8" ?><products>    <product name="Beatles" pn_time_start="с 1.00" pn_time_finish="до 2.00" ></product>    <product name="Energy" pn_time_start="не работает" pn_time_finish="не работает" ></product></products> 

Re: Импорт XML во Flash as2.0 и as3.0?

Добавлено: 30 июл 2012, 22:14
Alazaur

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

var my_xml:XML;var loader:URLLoader = new URLLoader();loader.addEventListener(Event.COMPLETE, onComplete);loader.load(new URLRequest("sample.xml")); function onComplete(e:Event):void {   loader.removeEventListener(Event.COMPLETE, onComplete);   my_xml = new XML(e.target.data);}

Re: Импорт XML во Flash as2.0 и as3.0?

Добавлено: 30 июл 2012, 22:18
gpv123

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

var loader:URLLoader = new URLLoader();loader.addEventListener(Event.COMPLETE, onLoaderComplete);loader.load(new URLRequest('sample.xml')); function onLoaderComplete(e:Event):void{    var xml:XML = XML(e.target.data);    tf1.text = xml.product[0].@name;    tf2.text = xml.product[1].@name;    tf3.text = xml.product[0].@pn_time_finish;}
Сам код не проверял, но работать должен.

Re: Импорт XML во Flash as2.0 и as3.0?

Добавлено: 30 июл 2012, 23:56
vitebsk911
Alazaur
а где имена текстовых полей??? и как в этом варианте добраться до 2-й подкатегории?

gpv123
запись в xml или

Re: Импорт XML во Flash as2.0 и as3.0?

Добавлено: 31 июл 2012, 00:38
Alazaur
vitebsk911 писал(а):Alazaur
а где имена текстовых полей??? и как в этом варианте добраться до 2-й подкатегории?
Ну вам gpv123 показал же уже как)
Да доступ к атрибутам узла (в вашем случае name, pn_time_start и pn_time_finish) осуществляется через собаку @.

Re: Импорт XML во Flash as2.0 и as3.0?

Добавлено: 31 июл 2012, 01:15
sanych_dv
http://code.google.com/p/asaxb/ - AS3 порт JAXB для сериализации / десериализации XML.
XML to JSON : http://krasimirtsonev.com/blog/article/ ... n-xml2json

Если есть возможность представить входные данные в JSON, используйте JSON.

Re: Импорт XML во Flash as2.0 и as3.0?

Добавлено: 31 июл 2012, 01:26
vitebsk911
Работает... Всем спасибо[мысли в слух: но зачем такая большая разница между 2.0 and 3.0]

Re: Импорт XML во Flash as2.0 и as3.0?

Добавлено: 31 июл 2012, 07:14
Alazaur
vitebsk911 писал(а):Работает... Всем спасибо[мысли в слух: но зачем такая большая разница между 2.0 and 3.0]
В ActionScript 3 работа с XML приведена к стандарту E4X - ECMAScript's XML specification. Этот подход обеспечивает более удобные методы работы с узлами и атрибутами XML дерева. Все методы собраны в новом классе XML (top level XML)
...
Прежний XML класс, такой каким он был в ActionScript 1 и 2, так же остался, просто переименован в XMLDocument (flash.xml.XMLDocument). Если хотите работать с XML по старинке, то используйте XMLDocument вместо XML.