Flex读取xml文件

主要有两个方法:

 

(1)通过HTTPService

(2)通过URLLoader

 

代码如下:

 

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.collections.ArrayCollection;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.http.HTTPService;
   
    public const xmlUrl:String = "config.xml";
    [Bindable] private var colors1:ArrayCollection;
    [Bindable] private var colors2:XML;
   
    private function init():void{
     //方法一:通过HTTPService
     var service:HTTPService = new HTTPService();
     service.url = xmlUrl;
     service.addEventListener(ResultEvent.RESULT, resultHandler);
     service.send();
    
     //方法二:通过URLLoader
     var request:URLRequest = new URLRequest(xmlUrl);
     var loader:URLLoader = new URLLoader(request);
     loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
    }
   
    private function resultHandler(event:ResultEvent):void{
     colors1 = event.result.colors.color;
    }
   
    private function loaderCompleteHandler(event:Event):void{
     colors2 = new XML(event.target.data);
    }
   ]]>
</mx:Script>
<mx:List x="100" y="150" dataProvider="{colors1}" labelField="name">
</mx:List>
<mx:List x="300" y="150" dataProvider="{colors2.color}" labelField="@name">
</mx:List>
</mx:Application>
 

config.xml文件

 

<colors>
<color name="LightGrey" value="#D3D3D3"/>
<color name="Silver" value="#C0C0C0"/>
<color name="DarkGray" value="#A9A9A9"/>
<color name="Gray" value="#808080"/>
<color name="DimGray" value="#696969"/>
<color name="Black" value="#000000"/>
</colors>

 

实例:

 

登录

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.rpc.events.ResultEvent;
			import flash.net.navigateToURL;
			
			private function goLogin():void{
				login.send();
			}
			private function resultHandler(event:ResultEvent):void{
				var entry:String = event.result.users.a.toString();
				if(entry == 'ok'){
		
				}else{
					Alert.show('Username or Password is/are wrong !');
				}				
			}
		]]>
	</mx:Script>
	<mx:HTTPService id="login" method="POST" showBusyCursor="true" url="flexlogin.php" result="resultHandler(event)">
		<mx:request xmlns="">
			<mx:username> {username.text} </mx:username>
			<mx:userpwd> {userpwd.text} </mx:userpwd>
		</mx:request>
	</mx:HTTPService>
	
	<mx:Panel width="310" height="265" layout="absolute" title="登录" fontSize="12" fontWeight="normal">
		<mx:TextInput x="93" y="51" id="username" fontSize="12"/>
		<mx:TextInput x="92" y="95" id="userpwd" fontSize="12" displayAsPassword="true"/>
		<mx:Button x="73" y="154" label="登录" id="btn1" click="goLogin()" fontWeight="normal" fontSize="12"/>
		<mx:Label x="32" y="53" text="用户名:" fontSize="12"/>
		<mx:Label x="43" y="97" text="密码:" fontSize="12"/>
		<mx:Button x="154" y="154" label="注册" fontSize="12" fontWeight="normal" id="btn2"/>
		<mx:Label x="10" y="10" text="测试用 用户名 User 密码 123456" fontSize="12" width="243"/>
	</mx:Panel>
	
</mx:Application>

 

flexlogin.php

 

<?php     
$return="";
if(isset($_POST[username]) && isset($_POST[userpwd])){
 if ("User"==$_POST[username] && "123456"==$_POST[userpwd])
    $return="ok";
 else
    $return="error";
}
$xml_return = '<users>';
$xml_return.= '<a>'.$return.'</a>';
$xml_return.= '</users>';
echo $xml_return;
 

实例:

 

rss

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="feedRequest.send()">
	<mx:Script>
		<![CDATA[
			import flash.net.navigateToURL;
		]]>
	</mx:Script>
	<!-- 利用flex获取并显示数据2 -->
	<mx:HTTPService id="feedRequest" url="flexXml.xml" useProxy="false"/>
	
	<mx:Panel x="10" y="10" width="475" height="400" layout="absolute" title="{feedRequest.lastResult.rss.channel.title}" >
		
		<mx:DataGrid x="10" y="10" id="dgPosts" width="400" dataProvider="{feedRequest.lastResult.rss.channel.item}">
			<mx:columns>
				<mx:DataGridColumn headerText="Posts" dataField="title"/>
				<mx:DataGridColumn headerText="Date" dataField="pubDate" width="150"/>
			</mx:columns>
		</mx:DataGrid>
		
		<mx:LinkButton x="10" y="225" label="Read full part" click="navigateToURL(new URLRequest(dgPosts.selectedItem.link));"/>
		<mx:TextArea x="10" y="175" width="400" htmlText="{dgPosts.selectedItem.description}"/>
		
	</mx:Panel>
	
</mx:Application>
 

flexXml.xml

 

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<!-- 该文件放到tomcat的root目录 -->
	<channel>
		<title>你好,flex获取并显示数据</title>

		<item>
			<title>hello world</title>
			<description> this is a best exanple in flex,you can do it with me ,and may you hava a wanderful future </description>
			<link>http://hi.baidu.com/shiryu963</link>
			<guid>http://hi.baidu.com/shiryu963</guid>
			<category>general</category>
			<pubDate>2009.6.8 12:17:11</pubDate>
		</item>

		<item>
			<title>hello kava</title>
			<description> best wishs to me,this is a best exanple in flex,you can do it with me ,and may you hava a wanderful future </description>
			<link>http://hi.baidu.com/shiryu963</link>
			<guid>gech.com</guid>
			<category>general</category>
			<pubDate>2009.8.8 6:20:11</pubDate>
		</item>

		<item>
			<title>hello shiryu</title>
			<description> i hava a best wish to you,this is a best exanple in flex,you can do it with me ,and may you hava a wanderful future </description>
			<link>http://hi.baidu.com/shiryu963</link>
			<guid>hahahhahhahahah</guid>
			<category>improtant</category>
			<pubDate>2009.4.22 6:20:11</pubDate>
		</item>
	</channel>
</rss>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值