自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Flex調(diào)用Webservice實現(xiàn)天氣預報

開發(fā) 后端
本文向大家描述一下Flex如何調(diào)用Webservice實現(xiàn)天氣預報,F(xiàn)lex調(diào)用Webservice有多種方法,可以通過FlexBuilder提供的管理Webservices的工具解析WSDL文檔生成本地調(diào)用類。

你對Flex調(diào)用Webservice實現(xiàn)天氣預報的方法是否熟悉,這里和大家分享一下,F(xiàn)lex調(diào)用Webservice有多種方法,可以通過ActionScript中Webservice類來實現(xiàn)。還有就是使用<Webservice>組件實現(xiàn)。

Flex調(diào)用Webservice實現(xiàn)天氣預報

Flex調(diào)用Webservice有多種方法,可以通過FlexBuilder提供的管理Webservices的工具解析WSDL文檔生成本地調(diào)用類。也可以通過ActionScript中Webservice類來實現(xiàn)。還有就是使用<Webservice>組件實現(xiàn)。這次我使用的是最后一種,感覺這種方法較為簡潔。

1.構(gòu)建界面

用于接受用戶輸入及結(jié)果輸出。包括:1個Text輸入組件,1個按鈕組件,10個標簽組件

2.添加Webservice組件

根據(jù)Web服務(wù)提供者的說明,構(gòu)建Webservice組件。代碼如下:

  1. <mx:WebServiceidmx:WebServiceid="ws"wsdl="http://www.webxml.com.cn/  
  2. WebServices/WeatherWebService.asmx?wsdl"  
  3. useProxy="false"showBusyCursor="true"> 
  4. <mx:operationnamemx:operationname="getWeatherbyCityName" 
  5. result="resultOK()"> 
  6. <mx:request> 
  7. <theCityName> 
  8. {city.text.toString()}  
  9. </theCityName> 
  10. </mx:request> 
  11. </mx:operation> 
  12. </mx:WebService> 

注意:operation組件中的name屬性需要和待使用的方法的名字相同。result的屬性是在調(diào)用方法成功后執(zhí)行的ActionScript方法。operation還有其他屬性,鑒于例子很簡單,就不一一使用了。

3.編寫ActionScript方法

本例中使用了三個方法:resultOK()用于顯示結(jié)果的,showMessage()用于顯示說明,getfocus()用于當輸入欄得到焦點時清空輸入欄內(nèi)容的。下面是resultOK()的分析:

  1. publicfunctionresultOK():void{//顯示接受的結(jié)果  
  2. arrayResult=newArrayCollection();  
  3. arrayResult=ws.getWeatherbyCityName.lastResult;  
  4.  
  5. //顯示今天的情況  
  6. jin1.text=arrayResult[6].toString().substring(0,arrayResult[6].toString().indexOf(""));  
  7. jin2.text=arrayResult[6].toString().substring((arrayResult[6].toString().indexOf(""))+1);  
  8. jin3.text=arrayResult[5];  
  9. jin4.text=arrayResult[7];  
  10.  
  11. //顯示明天的情況  
  12. ming1.text=arrayResult[13].toString().substring(0,arrayResult[13].toString().indexOf(""));  
  13. ming2.text=arrayResult[13].toString().substring((arrayResult[13].toString().indexOf(""))+1);  
  14. ming3.text=arrayResult[12];  
  15. ming4.text=arrayResult[14];  
  16.  
  17. //顯示后天的情況  
  18. hou1.text=arrayResult[18].toString().substring(0,arrayResult[18].toString().indexOf(""));  
  19. hou2.text=arrayResult[18].toString().substring((arrayResult[18].toString().indexOf(""))+1);  
  20. hou3.text=arrayResult[17];  
  21. hou4.text=arrayResult[19];  
  22. }  
  23.  

在使用Web服務(wù)返回的結(jié)果時,發(fā)現(xiàn)其結(jié)果保存在字符數(shù)組中的,在WSDL中是ArrayOfString,而Flex沒有這種格式,在試過String,Array類型后,發(fā)現(xiàn)ArrayCollection類可以使用。然后就是顯示結(jié)果,可根據(jù)WSDL說明來挑選信息。

4.使用按鈕調(diào)用Webservice組件,發(fā)送Web服務(wù)信息。

即調(diào)用ws.getWeatherbyCityName.send()方法。

◆編譯發(fā)布swf文件

求助:在使用swf文件的時候有這樣的問題,不曉得怎么把flex導出的swf嵌入Html中。普通的嵌入,不能實現(xiàn)調(diào)用Web服務(wù)的功能,使用項目生成的文件包中的Html文件倒是可以,但是如果把文件包復制出來,放到另外的地方,又無法使用Web服務(wù)了。那位高手能夠給予幫助,在下將不勝感激。

完整代碼如下:

  1. <?xmlversionxmlversion="1.0"encoding="gb2312"?> 
  2. <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"width="330"  
  3. height="155"layout="absolute"fontSize="12"viewSourceURL="srcview/index.html"> 
  4. <mx:Script> 
  5. <![CDATA[  
  6. importmx.controls.Alert;  
  7. importmx.collections.ArrayCollection;  
  8. publicvararrayResult:ArrayCollection;//保存接收到的結(jié)果  
  9. publicfunctionresultOK():void{//顯示接受的結(jié)果  
  10. arrayResult=newArrayCollection();  
  11. arrayResult=ws.getWeatherbyCityName.lastResult;  
  12.  
  13. //顯示今天的情況  
  14. jin1.text=arrayResult[6].toString().substring(0,arrayResult[6].toString().indexOf(""));  
  15. jin2.text=arrayResult[6].toString().substring((arrayResult[6].toString().indexOf(""))+1);  
  16. jin3.text=arrayResult[5];  
  17. jin4.text=arrayResult[7];  
  18.  
  19. //顯示明天的情況  
  20. ming1.text=arrayResult[13].toString().substring(0,arrayResult[13].toString().indexOf(""));  
  21. ming2.text=arrayResult[13].toString().substring((arrayResult[13].toString().indexOf(""))+1);  
  22. ming3.text=arrayResult[12];  
  23. ming4.text=arrayResult[14];  
  24.  
  25. //顯示后天的情況  
  26. hou1.text=arrayResult[18].toString().substring(0,arrayResult[18].toString().indexOf(""));  
  27. hou2.text=arrayResult[18].toString().substring((arrayResult[18].toString().indexOf(""))+1);  
  28. hou3.text=arrayResult[17];  
  29. hou4.text=arrayResult[19];  
  30. }  
  31.  
  32. //顯示說明  
  33. publicfunctionshowMessage():void{  
  34. varalert:Alert=Alert.show("請輸入城市中文名稱(國外城市可用英文)。web服務(wù)來源于http://www.webxml.com.cn,數(shù)據(jù)來源于中國氣象局"+  
  35. ",包括340多個中國"+  
  36. "主要城市和60多個國外主要城市三日內(nèi)的天氣情況。作者EMAIL:anhulife@gmail.com","說明",Alert.YES);  
  37. }  
  38.  
  39. //處理當輸入欄獲得焦點時,輸入欄清空  
  40. publicfunctiongetfocus():void{  
  41. city.text="";  
  42. }  
  43. ]]> 
  44. </mx:Script> 
  45.  
  46.  
  47. <mx:WebServiceidmx:WebServiceid="ws"wsdl="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"  
  48. useProxy="false"showBusyCursor="true"> 
  49. <mx:operationnamemx:operationname="getWeatherbyCityName"result="resultOK()"> 
  50. <mx:request> 
  51. <theCityName> 
  52. {city.text.toString()}  
  53. </theCityName> 
  54. </mx:request> 
  55. </mx:operation> 
  56. </mx:WebService> 
  57.  
  58. <mx:TextInputidmx:TextInputid="city"text="請輸入城市名,支持國內(nèi)外主要城市"  
  59. width="200"x="10"y="10"focusIn="getfocus()"fontSize="12"color="#909697"/> 
  60.  
  61. <mx:Buttonidmx:Buttonid="check"x="230"y="10"label="查詢"click="ws.getWeatherbyCityName.send()"/> 
  62.  
  63. <!--顯示結(jié)果的Label--> 
  64. <mx:Labelxmx:Labelx="10"y="42"text=""width="90"id="jin1"/> 
  65. <mx:Labelxmx:Labelx="10"y="70"text=""width="90"id="jin2"/> 
  66. <mx:Labelxmx:Labelx="10"y="98"text=""width="90"id="jin3"/> 
  67. <mx:Labelxmx:Labelx="10"y="126"text=""width="90"id="jin4"/> 
  68. <mx:Labelxmx:Labelx="120"y="42"text=""width="90"id="ming1"/> 
  69. <mx:Labelxmx:Labelx="120"y="70"text=""width="90"id="ming2"/> 
  70. <mx:Labelxmx:Labelx="120"y="98"text=""width="90"id="ming3"/> 
  71. <mx:Labelxmx:Labelx="120"y="126"text=""width="90"id="ming4"/> 
  72. <mx:Labelxmx:Labelx="230"y="41"text=""width="90"id="hou1"/> 
  73. <mx:Labelxmx:Labelx="230"y="69"text=""width="90"id="hou2"/> 
  74. <mx:Labelxmx:Labelx="230"y="97"text=""width="90"id="hou3"/> 
  75. <mx:Labelxmx:Labelx="230"y="125"text=""width="90"id="hou4"/> 
  76.  
  77. <!--顯示說明的Label--> 
  78. <mx:Labelxmx:Labelx="288"y="12"text="說明"width="32"textDecoration="underline"color="#FAFBFB"click="showMessage()"/> 
  79. </mx:Application> 
  80.  

 想學習Webservice,所以先研究一下Flex怎么調(diào)用WebService.看了這篇文章感覺不錯,先測試一下。

【編輯推薦】

  1. 學習筆記 用Flash和Flex創(chuàng)建WebService客戶端
  2. 深入剖析Flex字體樣式定義方法
  3. 全面認識Flex應(yīng)用程序的六大元素
  4. 揭開Flex正則表達式的神秘面紗
  5. Flex數(shù)據(jù)綁定及其使用頻繁的幾種情況 

 

責任編輯:佚名 來源: 163.com
相關(guān)推薦

2016-03-14 10:29:38

天氣預報各類工具源碼

2013-03-26 13:20:27

Android天氣預報

2009-12-02 15:45:04

PHP抓取天氣預報

2017-08-01 10:10:32

人工智能智能天氣預報

2009-07-07 09:25:08

Linux開發(fā)FOSS開發(fā)項目

2020-01-16 15:13:40

AI預測天氣預報

2022-02-21 11:02:54

5G通信網(wǎng)絡(luò)天氣預報

2018-01-29 11:25:37

LinuxASCII 字符天氣預報

2020-02-11 20:00:29

開源開源工具天氣預報

2012-07-16 13:36:54

交換機數(shù)據(jù)中心核心交換機氣象衛(wèi)星

2013-04-10 17:59:50

微信公眾平臺接口開發(fā)

2015-10-19 17:16:10

天氣預報命令行Linux

2009-08-26 16:59:44

Web Service

2009-04-17 17:11:18

ASP.NET新浪天氣

2022-02-21 15:07:48

氣象學人工智能AI

2013-09-09 10:52:10

2012-03-13 16:45:09

超級計算機沃森Deep Thunde

2012-06-18 15:40:32

jQuery

2019-10-25 19:42:41

華為

2023-10-27 16:15:35

鴻蒙天氣服務(wù)功能
點贊
收藏

51CTO技術(shù)棧公眾號