shmblra
27.05.2011, 11:48
Уважаемые форумчане, помогите разобраться.
Все ни как не могу разобраться как работать с 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>
2. загружаю его во флеш:
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);
}
}
}
Проблема в том, что я не знаю как добавить элементы в массив и по мимо всего прочего у каждого тега level есть дочерние элементы, как создать массив объектов примерно такого типа из этой структуры
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 (их же может быть неограниченное колличество)
}
и так далее
я запутался уже с xml ...
Все ни как не могу разобраться как работать с 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>
2. загружаю его во флеш:
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);
}
}
}
Проблема в том, что я не знаю как добавить элементы в массив и по мимо всего прочего у каждого тега level есть дочерние элементы, как создать массив объектов примерно такого типа из этой структуры
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 (их же может быть неограниченное колличество)
}
и так далее
я запутался уже с xml ...