![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2011
Адрес: Севастополь
Сообщений: 15
|
Уважаемые форумчане, помогите разобраться.
Все ни как не могу разобраться как работать с xml Задача в следущем: 1. создание xml 2. загрузить его во флеш 3. создать и добавить данные из xml в массив объектов. мои действия: 1. XML структура: <?xml version="1.0" encoding="utf-8"?> <games> <level id="1" small="images/small_1.jpg" big="images/big_1.jpg"> <tags id="1" obj="некий объект" text="некий текст"></tags> <tags id="2" obj="некий объект" text="некий текст"></tags> </level> <level id="2" small="images/small_2.jpg" big="images/big_2.jpg"> <tags id="1" obj="некий объект" text="некий текст"></tags> <tags id="2" obj="некий объект" text="некий текст"></tags> </level> <level id="3" small="images/small_3.jpg" big="images/big_3.jpg"> <tags id="1" obj="некий объект" text="некий текст"></tags> <tags id="2" obj="некий объект" text="некий текст"></tags> </level> </games> class action.rad.all.Game extends MovieClip { private var gameArray:Array; public function Game() { gameArray = new Array(); var xmlData:XML = new XML(); xmlData.ignoreWhite = true; xmlData.onLoad = loadXML; xmlData.load('xml/myxml.xml'); function loadXML (success:Boolean) { if (success){ var node:XMLNode = this.firstChild ; var total:Number = node.childNodes.length ; for(var i:Number = 0; i < total; i++){ var fName:String = node.childNodes[i].attributes['small']; trace(fName); gameArray[i] = fName; - выводлит undefine - не могу понять почему //gameArray.push(fName) - выводит так же undefine } }else { trace ('Ошибка при загрузке xml'); } trace ('gameArray: ' + gameArray); } } } someObject[0]
{
obj.id = level_id
obj.small = level_small
obj.big = level_big
obj.tags = level.tags.id = i (их же может быть неограниченное колличество)
}
someObject[1]
{
obj.id = level_id
obj.small = level_small
obj.big = level_big
obj.tags = level.tags.id = i (их же может быть неограниченное колличество)
}
и так далее
|
|
|||||
|
attributes.small
Дочерние - вставьте еще один цикл и: node.childNodes[i].childNodes[j].attributes |
|
|||||
|
Регистрация: May 2011
Адрес: Севастополь
Сообщений: 15
|
а в массив не добавляет ...
немного переделал структуру, при помощи callBack функции а вот как теперь построить массив объектом ? class action.rad.all.Game extends MovieClip { private var xmlData:XML; private var gameObject:Object; //Конструктор Класса public function Game() { xmlData = new XML(); xmlData.ignoreWhite = true; xmlData.onLoad = callBack (this, loadXML); xmlData.load('xml/myxml.xml'); } //Функция разбора XML, создает Массив Объектов. private function loadXML (success:Boolean) { if (success) { var node:XMLNode = xmlData.firstChild ; var total:Number = node.childNodes.length ; for (var i:Number = 0; i < total; i++) { var pp:XMLNode = node.childNodes[i]; if (pp.nodeName == 'level') { trace ('small: ' + pp.attributes.small); trace ('big: ' + pp.attributes.big); for (var j:Number = 0; j < pp.childNodes.length; j++) { var zz:XMLNode = pp.childNodes[j]; if (zz.nodeName == 'tags') { trace ('obj: ' + zz.attributes.obj); trace ('text: ' + zz.attributes.text); } } } trace ('----------------'); } }else { trace ('Ошибка при загрузке xml'); } } //Возвращает функцию. Влияет на область видимости private function callBack (scope, func, par):Function { return function () { if (par != undefined ) { func.call(scope, arguments, par); } else { func.call(scope, arguments); } } } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|