Flex中如何使用WebService类调用一个简单web service的例子

接下来的例子演示了Flex中如何利用<mx:WebService />标签,调用一个ColdFusion的Web Service。
让我们先来看一下Demo(可以右键View Source或 点击这里察看源代码 ):
Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         layout="vertical"
  4.         verticalAlign="middle"
  5.         backgroundColor="white">
  6.     <mx:Script>
  7.         <![CDATA[
  8.             import mx.controls.Alert;
  9.             import mx.rpc.events.ResultEvent;
  10.             import mx.rpc.events.FaultEvent;
  11.             import mx.utils.ObjectUtil;
  12.             private var startTime:int;
  13.             private var endTime:int;
  14.             private function button_click():void {
  15.                 webService.getMonths.send();
  16.                 startTime = getTimer();
  17.                 lbl.text = "";
  18.             }
  19.             private function getMonths_result(evt:ResultEvent):void {
  20.                 textArea.text = ObjectUtil.toString(evt.result);
  21.                 calcTime();
  22.             }
  23.             private function getMonths_fault(evt:FaultEvent):void {
  24.                 Alert.show(evt.type);
  25.                 calcTime();
  26.             }
  27.             private function calcTime():void {
  28.                 endTime = getTimer();
  29.                 lbl.text = "total time: " + (endTime - startTime) + "ms";
  30.             }
  31.         ]]>
  32.     </mx:Script>
  33.     <mx:WebService id="webService"
  34.             wsdl="http://www.flash-mx.com/ws/months.cfc?wsdl">
  35.         <mx:operation name="getMonths"
  36.                 resultFormat="object"
  37.                 result="getMonths_result(event);"
  38.                 fault="getMonths_fault(event);" />
  39.     </mx:WebService>
  40.     <mx:ApplicationControlBar dock="true">
  41.         <mx:Button id="button"
  42.                 label="get months from web service"
  43.                 click="button_click();" />
  44.         <mx:Spacer width="100%" />
  45.         <mx:Label id="lbl" />
  46.     </mx:ApplicationControlBar>
  47.     <mx:TextArea id="textArea"
  48.             editable="false"
  49.             width="100%"
  50.             height="100%" />
  51. </mx:Application>
ColdFusion中的代码看起来应该是这样的:
  1. <cfcomponent output="false">
  2.     <cffunction name="getMonths" access="remote" returntype="array" output="false">
  3.         <cfset var monthNames = ListToArray("January,February,March,April,May,June,July,August,September,October,November,December") />
  4.         <cfreturn monthNames />
  5.     </cffunction>
  6. </cfcomponent>

你可能感兴趣的:(webservice,职场,休闲,service的例子)