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

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Ответить
Аватара пользователя
vitebsk911
Сообщения: 143
Зарегистрирован: 11 июл 2012, 23:09

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

Сообщение 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> 
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

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

Сообщение 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);}
gpv123
Сообщения: 346
Зарегистрирован: 29 янв 2012, 20:57

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

Сообщение 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;}
Сам код не проверял, но работать должен.
Аватара пользователя
vitebsk911
Сообщения: 143
Зарегистрирован: 11 июл 2012, 23:09

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

Сообщение vitebsk911 »

Alazaur
а где имена текстовых полей??? и как в этом варианте добраться до 2-й подкатегории?

gpv123
запись в xml или
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

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

Сообщение Alazaur »

vitebsk911 писал(а):Alazaur
а где имена текстовых полей??? и как в этом варианте добраться до 2-й подкатегории?
Ну вам gpv123 показал же уже как)
Да доступ к атрибутам узла (в вашем случае name, pn_time_start и pn_time_finish) осуществляется через собаку @.
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

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

Сообщение sanych_dv »

http://code.google.com/p/asaxb/ - AS3 порт JAXB для сериализации / десериализации XML.
XML to JSON : http://krasimirtsonev.com/blog/article/ ... n-xml2json

Если есть возможность представить входные данные в JSON, используйте JSON.
Аватара пользователя
vitebsk911
Сообщения: 143
Зарегистрирован: 11 июл 2012, 23:09

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

Сообщение vitebsk911 »

Работает... Всем спасибо[мысли в слух: но зачем такая большая разница между 2.0 and 3.0]
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

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

Сообщение 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.
Ответить