PDA

Просмотр полной версии : xml глюк


bobnur
04.08.2010, 16:28
при первом чтении с xml файла flash дает indefinite значениям переменых, но при обновлении все норм... почему?? если нужен код скажите какую часть выложить?

KirAmp
04.08.2010, 16:47
bobnur
А вы ждете пока XML догрузится?

bobnur
04.08.2010, 16:58
да... конешно :)

mooncar
04.08.2010, 18:06
А в какой момент (по коду) вы просматриваете значения переменных?
Ну наверное, вам стоить выложите весь участок, где вы работаете с XML, опустив при этом ненужные для решения проблемы куски.

bobnur
05.08.2010, 14:10
var pix_xml:XML = new XML;
pix_xml.ignoreWhite = true;
pix_xml.load(url);

pix_xml.onLoad = function(success:Boolean){
if(success){
parseXML();
play();
}else{
trace("Error: Can't load XML");
}
}

это загруска xml...


function parseXML():Void
{
//trace(pix_xml.firstChild.childNodes.length);
for(var i=0; i<pix_xml.firstChild.childNodes.length; i++)
{
var obj:Object = {txt:pix_xml.firstChild.childNodes[i].attributes.text, url:pix_xml.firstChild.childNodes[i].attributes.url, link:pix_xml.firstChild.childNodes[i].attributes.link};
pix_arr.push(obj);
//trace(pix_arr[i].txt);
}

это раскидование на массив из объектов...


a потом идет чтение с этих объектов!

NoCD
05.08.2010, 20:46
content.xml



<?xml version="1.0" encoding="UTF-8"?>
<map>
<title>
<cell txt= "Title" />
<cell txt= "author" />
<cell txt= "data" />
</title>
<content>
<cell txt = "Content"/>
</content>
</map>


test.fla

function buildGrid() {
var board:XMLNode = new XML();
board = boardXML.firstChild;
//------------------------------------------
var tempArray:Array = new Array();
tempArray = board.childNodes;
//------------------------------------------
var tempText:Array = new Array();
var tempContent:Array = new Array();
var tempContent2:String = "";
//------------------------------------------

temp = tempArray[0].childNodes;
for(var i = 0;i<=2;i++){

var temp2 = temp[i].attributes.txt;
tempText.push(temp2)

}
//-----------------------------------------------
var tempArray2:Array = new Array();
tempArray2 = tempArray[1].childNodes;

for (var i:Number = 0; i<tempArray2.length; ++i) {

tempContent.push(tempArray2[i].attributes.txt);
tempContent2 += (tempArray2[i].attributes.txt);


}
trace(tempText);
trace(tempContent2);
}

//---------------------------------------------
var boardXML:XML = new XML();
boardXML.ignoreWhite = true;
boardXML.prototype.ignoreWhite = true;
boardXML.onLoad = buildGrid;
boardXML.load("content.xml");
//------------------------------