DFdou's Blog Life is short,Be yourself.

1501/090

Flash-AS2和AS3加载XML

先来AS2版本的:

var gb_xml:XML = new XML();
var xmlpath = "xml.php";
gb_xml.ignoreWhite = true;
gb_xml.load(xmlpath);
gb_xml.onLoad = function(s:Boolean)
{
	if (s)
	{
		trace("xml loaded");
                //do something here
                init();
	}
	else
	{
		trace("failed");
                //do something here
	}
};

AS2里边XML的遍历比较简单,因为XML有个length()方法可以直接返回XML的节点长度。
这样我们如果需要遍历的话就可以这样写:

function init(){
  for(var i:Number=0;gb_xml.length();i++){
    attachMovie("xxx","xxx",100+i);
    //do something here
  }
}

但是在AS3里,XML的length()方法只会返回1……对于这个问题,我们可以使用XML的children()方法先返回一个XMLList,
XMLList等同于AS2的的XML,可以使用length()方法,这样一来就可以跟AS2采取一样的操作了。

var xml_menu:XML = new XML();
var xmlurl:String = "menu.xml";
var xmlrequest:URLRequest = new URLRequest(xmlurl);
var xmlloader:URLLoader = new URLLoader(xmlrequest);
xmlloader.addEventListener(Event.COMPLETE, xmlLoaded);
function xmlLoaded(event:Event):void {
	xml_menu = XML(xmlloader.data);
	//trace("Data loaded.");
        //获取XML的节点长度
	int_menunum=xml_menu.children().length();
	for (var i:int=0; i<int_menunum; i++) {
            var _mc=new xxx();
            addChild(_mc);
        }
}

Some Related Posts

Comments (0) Trackbacks (0)

No comments yet.


Leave a comment

:zhuang :xizao :wuwu :wenhao :wc :touxiang :shuaya :shuajian :shengtian :paopao :no :meinv :maonv :loveu :leilei :kua :jrjr :dahan :chi :chaocai :byebye


CommentLuv Enabled

No trackbacks yet.