`
xianzhideng
  • 浏览: 60671 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

flex笔记-读取xml

    博客分类:
  • RIA
阅读更多

最近在用到flex 读取xml 的功能,发现flex用法与以前的jsp的习惯差异还是很大,在此总结记录下:

 

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
<item>
	<id>item1</id>
	<value>v1</value>
</item>
<item>
	<id>item2</id>
	<value>v2</value>
</item>
</root>

 

 

方法一:利用<mx:xml>控件读取xml

    test.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:XML id="myXml" source="test.xml" />
	<mx:ComboBox x="266" y="137" labelField="id" dataProvider="{this.myXml.item}"/>
</mx:Application>

    这里就读取了test.xml文件内容,并为ComboBox控件提供数据。

    注:经测试这种方法在编译成swf文件时,已经将xml文件一起打包进swf运行文件了。是一种静态的读取。如果想在动态的读取可以采用下面的as3的读取方式。

 

方法二:利用as3动态读取xml

   flash为了完全,是不允许访问本地文件,所以这里利用as读取的xml的方式也是通过http协议读取,此时要到以下两个 类:

   1.URLRequest:一个http请求信息,这里用来建立被读取的xml请求信息。

   2.URLLoader:加载(下载)的URLRequest中的信息。

   详细代码如下:

   test.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
				layout="absolute" creationComplete="init()">
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			private function init():void
			{
				//创建URLRequest类,用于接收XML信息;
				var url:URLRequest=new URLRequest("test.xml");
				//创建URLLoader类,用于加载XML信息; 
				var loader:URLLoader=new URLLoader();
				//加载完成时运行处理xml函数  
				loader.addEventListener(Event.COMPLETE, dealXml);
				loader.load(url);
			}
			
			private function dealXml(event:Event):void
			{
				var loader:URLLoader=event.target as URLLoader;
				var myXmlList:XMLList=new XMLList(loader.data);
				this.testComb.dataProvider=myXmlList.item;
				this.testComb.labelField="id";
			}
		]]>
	</mx:Script>
	<mx:ComboBox id="testComb" x="266"
				 y="137"/>
</mx:Application>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics