Flex4之與後臺伺服器通訊方式:WebService

shilei22發表於2010-12-24
這次說的關於Flex的WebService來自於一位網友的貢獻,看了後十分清晰,果然比純JAVA的WebService要方便許多,只需要提供一個WebService服務地址,如中國氣象局的免費服務【當然大家都知道這個介面就是個XML】:[url]http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl[/url]
通過下面這個網址可以輸入城市,查詢城市天氣預報
[url]http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getWeatherbyCityName[/url]
我們現在要做的就是實現這個功能,在Flex上面非常容易,貼上程式碼
只有一個mxml即可
<span style="font-size: medium;"><?xml version="1.0" encoding="utf-8"?>  
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- 將非可視元素(例如服務、值物件)放在此處 -->
<mx:WebService id="webService" wsdl="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"
showBusyCursor="true" result="onLoad(event)" fault="faultHandler(event)"/>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private function onLoad(event:ResultEvent):void{
//Alert.show(event.result.toString(),"WebService Results");
var weatherInfo:ArrayCollection = (event.result) as ArrayCollection;
for(var i:int=0;i<weatherInfo.length;i++){
myWeatherReport.text+=weatherInfo[i]+"\n";
}
}
private function faultHandler(event:FaultEvent):void{
Alert.show(event.fault.toString(),'WebService Error');
}


protected function button1_clickHandler(event:MouseEvent):void
{
webService.getWeatherbyCityName(cityName.text);
}

]]>
</fx:Script>
<s:Panel x="48" y="21" width="679" height="423" title="城市天氣預報查詢FLEX">
<s:TextInput x="135" y="26" id="cityName"/>
<s:Label x="43" y="31" text="請輸入城市名稱"/>
<s:Button x="286" y="26" label="點選查詢" click="button1_clickHandler(event)"/>
<s:TextArea id="myWeatherReport" x="31" y="68" width="615" height="297"/>
</s:Panel>

</s:Application>
</span>

效果圖就是下面這樣的
[img]http://dl.iteye.com/upload/attachment/271017/d64763b9-0e17-3efd-9782-e884da03e8bb.png[/img]

來自http://javacrazyer.iteye.com/blog/702914

相關文章