flash加载xml到数组

来源:百度知道 编辑:UC知道 时间:2024/06/08 06:42:50
//加载xml文件
var gameXml:XML = new XML();
gameXml.ignoreWhite = true;
//这里是为了忽略空白
filepath = "xml/";
gameXml.onLoad = function(success) {
parseXml(this);
};

gameXml.load(filepath+"myxml.xml");
function parseXml(obj:XML) {
var arr_xml:Array = obj.firstChild.childNodes;
var arr_id:Array = new Array();
var arr_url:Array = new Array();
var arr_vedio_url:Array = new Array();

for (var i:Number = 0; i<arr_xml.length; i++) {
trace(arr_xml[i].nodeName);//输出第二级节点

for (var j:Number = 0; j<arr_xml[i].childNodes.length; j++) {
arr_id = arr_xml[i].childNodes[j].attributes.id;
arr_url = arr_xml[i].childNodes[j].attributes.url;
arr_vedio_url[j] = arr_xml[1].childNodes[3].attributes.url;
var myurl:String=arr_vedio_url[j];
trace(myurl);

myMedia.stop();//停止组件初始地址flv播放
myMedia.play(myurl);//赋与新flv地址并播放
var myListener = new Object();

兄弟对不住了, 刚给一个朋友写了一大串, 累死了... 没啥时间.

var myXML = new XML();
var pie = new Array();
myXML.ignoreWhite = true;
myXML.load("yourfile.xml");
myXML.onLoad = function(success) {
if (success) {
parseXML();
}
};
function parseXML() {
var e = myXML.firstChild.childNodes;
for (i=0; i<e.length; i++) {
var tempObj = new Object();
tempObj["dat"] = e[i].attributes["dat"];
tempObj["label"] = e[i].attributes["label"];
tempObj["colo"] = e[i].attributes["colo"];
pie.push(tempObj);
}
delete myXML;
}
然后就可以用pie[0].dat及pie[0].label及pie[0].colo等来引用了

要用数组值你得定义成全局的加上_global xmlArray[]=xxx;就行了。
你说同时被赋进多个,你那个不是数组么,用下标控制一下不就完了么。还是你想说其他的意思,没看明白