使用Flex中HttpService的应用开发(编程式)

   提起HttpService组件管理器中使用itemResponder和AsyncToken的使用如下:

 

itemResponder:代替急用属性的时间监听器或者addEventListener()方法处理和向ActionScript事件处理发送时间对象。要使用ItemResponder类,首先必须创建自定义事件处理器函数衣橱里RPC请求的result和falut事件,每一个事件处理函数除了接受时间对象还回接受一个AsynToken参数。

 

private function resultHandler(event:ResultEvent,token:AsyncToken):void

 

private function faultResultHandler(event:FaultEvent,token:AsyncToken):void

 

创建ItemResponder对象方法:

    var responder:ItemResponder=new ItemResponder(resultHandler,faultResultHandler);

 

AsyncToken:一种动态对象,开发者通过他可以再运行时向对象添加任意已命名属性。向RPC组件发送的每一个请求多返回一个AsyncToken 类的实例。该实例会在RPC请求的过程中存在于应用程序的内存中,创建请求后,可以任意田间信息跟踪请求的目的后其他重要信息。

 

 

具体实现代码:

 

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Script >
 <![CDATA[
  import mx.collections.ItemResponder;
  import mx.controls.Alert;
  import mx.rpc.events.FaultEvent;
  import mx.rpc.events.ResultEvent;
  import mx.rpc.AsyncToken;
  import mx.rpc.AsyncResponder;
  import mx.collections.ArrayCollection;
  [Bindable]
  private var myData:ArrayCollection;
  private var contactService:HTTPService=new HTTPService();
  
  private function getData()
  {
      contactService.url="data/books.xml" ;
      var responder:ItemResponder=new ItemResponder(resultHandler,faultResultHandler);
      var token:AsyncToken=contactService.send();
      token.addResponder(responder);
  }
  /**
   * 远程请求的处理
   *
   */
  private function resultHandler(event:ResultEvent,token:AsyncToken):void
  {
    myData=event.result.data.book;
  }
  /**
   * 远程方法错误的处理方法
   *
   */
  private function faultResultHandler(event:FaultEvent,token:AsyncToken):void
  {
      Alert.show(event.fault.faultString,event.fault.faultCode);
  }
 ]]>
</mx:Script>
 <mx:Button label="获取数据" click="getData()" x="69" y="268"/>
 <!--基于请求的HTTPService处理-->
 <mx:DataGrid id="requestHandlerdg" dataProvider="{myData}"  x="5" y="0" width="390" height="122"/>
 
  <!--基于事件的HTTPService处理-->
 <mx:DataGrid id="clickHandlerdg" dataProvider="{contactService.lastResult.data.book}"  x="5" y="130"  width="390" height="130"/>
 
</mx:Canvas>

 

 

 

你可能感兴趣的:(编程,xml,Flex,Adobe,actionscript)