【转】Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
2010-09-19 20:52
555 查看
在前两篇文章中分别介绍了Flex与.NET的WebService之间的数据交互通信知识,本文将介绍另外一种加载数据以及发起请求的方式。ActionScript 3.0中提供的数据加载请求类主要是HTTPService,URLLoader和URLRequest,可以通过他们协同来完成数据加载和请求。下面我么便来看看这三个类是怎么来完成数据加载工作。
在本地IIS服务器上有如下定义的XML文件:
1 <?xml version="1.0" encoding="utf-8" ?>
2 <Root>
3 <Book>
4 <Id>1</Id>
5 <Name>《三国演义》</Name>
6 <Author>罗贯中</Author>
7 <Price>52.30</Price>
8 </Book>
9 <Book>
<Id>2</Id>
<Name>《西游记》</Name>
<Author>吴承恩</Author>
<Price>39.91</Price>
</Book>
<Book>
<Id>3</Id>
<Name>《红楼梦》</Name>
<Author>曹雪芹</Author>
<Price>48.20</Price>
</Book>
<Book>
<Id>4</Id>
<Name>《水浒传》</Name>
<Author>施耐庵</Author>
<Price>39.85</Price>
</Book>
</Root>
一、使用HTTPService传递和加载数据
使用HTTPService可以实现加载数据,也可以实现参数传递,下面通过两个示例程序来讲解这两个知识点。
首先来看看HTTPService加载数据的方式。在Flex中使用HTTPService来装载外部数据是非常简单的,他是基于HTTP协议发送POST和GET请求外部数据,然后通过指定的监听方法来处理响应。我们可以通过<mx:HTTPService>标签来完成对数据源的连接,也可以通过可编程方式来处理,两种方式没什么大的差距,实际开发中可以根据自己喜好选择。
1 internal function onClick():void
2 {
3 var service:HTTPService = new HTTPService();
4 service.url = "http://localhost:1146/Data/Book.xml";
5 service.useProxy = false;
6 service.resultFormat="e4x";
7 service.addEventListener(ResultEvent.RESULT,onResultHandler);
8 service.send();
9 }
internal function onResultHandler(evt:ResultEvent):void
{
var xml:XML = evt.result as XML;
trace(xml);
bookGrid.dataProvider = xml.Book;
}
该示例的运行结果见文章最后,下面是这个示例的完整代码:
mxml完整代码
1 <?xml version="1.0" encoding="utf-8"?>
2 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
3 <mx:Script>
4 <![CDATA[
5 internal function onClick():void
6 {
7 var request:URLRequest = new URLRequest("http://localhost:1146/Data/Book.xml");
8 var loader:URLLoader = new URLLoader();
9 loader.load(request);
loader.addEventListener(Event.COMPLETE,onCompleteHandler);
}
private function onCompleteHandler(evt:Event):void
{
var xml:XML = new XML(evt.target.data);
bookGrid.dataProvider = xml.Book;
}
]]>
</mx:Script>
<mx:Panel x="49.5" y="94" width="419" height="267" layout="absolute" fontSize="12" borderColor="#E2E2E2" themeColor="#009DDF" title="使用URLLoader加在XML数据">
<mx:DataGrid x="10" y="10" width="377" id="bookGrid">
<mx:columns>
<mx:DataGridColumn headerText="编号" dataField="Id"/>
<mx:DataGridColumn headerText="书名" dataField="Name"/>
<mx:DataGridColumn headerText="作者" dataField="Author"/>
<mx:DataGridColumn headerText="价格" dataField="Price"/>
</mx:columns>
</mx:DataGrid>
<mx:ControlBar height="42">
<mx:Button label="加载数据" fontWeight="normal" click="onClick()"/>
</mx:ControlBar>
</mx:Panel>
</mx:Application>
本示例的运行结果如下图:
关于URLLoader的更多资料大家可以查看Adobe提供的在线文档:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/URLLoader.html
版权说明
本文属原创文章,欢迎转载,其版权归作者和博客园共有。
作 者:Beniao
文章出处:http://beniao.cnblogs.com/ 或 http://www.cnblogs.com/
在本地IIS服务器上有如下定义的XML文件:
1 <?xml version="1.0" encoding="utf-8" ?>
2 <Root>
3 <Book>
4 <Id>1</Id>
5 <Name>《三国演义》</Name>
6 <Author>罗贯中</Author>
7 <Price>52.30</Price>
8 </Book>
9 <Book>
<Id>2</Id>
<Name>《西游记》</Name>
<Author>吴承恩</Author>
<Price>39.91</Price>
</Book>
<Book>
<Id>3</Id>
<Name>《红楼梦》</Name>
<Author>曹雪芹</Author>
<Price>48.20</Price>
</Book>
<Book>
<Id>4</Id>
<Name>《水浒传》</Name>
<Author>施耐庵</Author>
<Price>39.85</Price>
</Book>
</Root>
一、使用HTTPService传递和加载数据
使用HTTPService可以实现加载数据,也可以实现参数传递,下面通过两个示例程序来讲解这两个知识点。
首先来看看HTTPService加载数据的方式。在Flex中使用HTTPService来装载外部数据是非常简单的,他是基于HTTP协议发送POST和GET请求外部数据,然后通过指定的监听方法来处理响应。我们可以通过<mx:HTTPService>标签来完成对数据源的连接,也可以通过可编程方式来处理,两种方式没什么大的差距,实际开发中可以根据自己喜好选择。
1 internal function onClick():void
2 {
3 var service:HTTPService = new HTTPService();
4 service.url = "http://localhost:1146/Data/Book.xml";
5 service.useProxy = false;
6 service.resultFormat="e4x";
7 service.addEventListener(ResultEvent.RESULT,onResultHandler);
8 service.send();
9 }
internal function onResultHandler(evt:ResultEvent):void
{
var xml:XML = evt.result as XML;
trace(xml);
bookGrid.dataProvider = xml.Book;
}
该示例的运行结果见文章最后,下面是这个示例的完整代码:
mxml完整代码
1 <?xml version="1.0" encoding="utf-8"?>
2 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
3 <mx:Script>
4 <![CDATA[
5 internal function onClick():void
6 {
7 var request:URLRequest = new URLRequest("http://localhost:1146/Data/Book.xml");
8 var loader:URLLoader = new URLLoader();
9 loader.load(request);
loader.addEventListener(Event.COMPLETE,onCompleteHandler);
}
private function onCompleteHandler(evt:Event):void
{
var xml:XML = new XML(evt.target.data);
bookGrid.dataProvider = xml.Book;
}
]]>
</mx:Script>
<mx:Panel x="49.5" y="94" width="419" height="267" layout="absolute" fontSize="12" borderColor="#E2E2E2" themeColor="#009DDF" title="使用URLLoader加在XML数据">
<mx:DataGrid x="10" y="10" width="377" id="bookGrid">
<mx:columns>
<mx:DataGridColumn headerText="编号" dataField="Id"/>
<mx:DataGridColumn headerText="书名" dataField="Name"/>
<mx:DataGridColumn headerText="作者" dataField="Author"/>
<mx:DataGridColumn headerText="价格" dataField="Price"/>
</mx:columns>
</mx:DataGrid>
<mx:ControlBar height="42">
<mx:Button label="加载数据" fontWeight="normal" click="onClick()"/>
</mx:ControlBar>
</mx:Panel>
</mx:Application>
本示例的运行结果如下图:
关于URLLoader的更多资料大家可以查看Adobe提供的在线文档:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/URLLoader.html
版权说明
本文属原创文章,欢迎转载,其版权归作者和博客园共有。
作 者:Beniao
文章出处:http://beniao.cnblogs.com/ 或 http://www.cnblogs.com/
相关文章推荐
- Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
- Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
- Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
- Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
- Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据 推荐
- Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
- Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
- Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
- Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
- Flex与.NET互操作 使用HttpService、URLReqeust和URLLoader加载/传输数据
- Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader
- Flex 3快速入门: 处理数据 使用 HTTPService 加载外部数据
- Flex 3快速入门: 处理数据 使用 HTTPService 加载外部数据
- Flex中使用HTTPService与服务器端交换数据
- Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载
- 使用asx3m与xstream配合解决flex与java利用httpservice传递xml数据问题
- Flex与外部数据通信URLLoader、HTTPService、 WebService
- Flex中使用HTTPService与服务器端交换数据
- Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载
- Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载