成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Flex調用Webservice實現天氣預報

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

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

Flex調用Webservice實現天氣預報

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

1.構建界面

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

2.添加Webservice組件

根據Web服務提供者的說明,構建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的屬性是在調用方法成功后執行的ActionScript方法。operation還有其他屬性,鑒于例子很簡單,就不一一使用了。

3.編寫ActionScript方法

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

  1. publicfunctionresultOK():void{//顯示接受的結果  
  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服務返回的結果時,發現其結果保存在字符數組中的,在WSDL中是ArrayOfString,而Flex沒有這種格式,在試過String,Array類型后,發現ArrayCollection類可以使用。然后就是顯示結果,可根據WSDL說明來挑選信息。

4.使用按鈕調用Webservice組件,發送Web服務信息。

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

◆編譯發布swf文件

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

完整代碼如下:

  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;//保存接收到的結果  
  9. publicfunctionresultOK():void{//顯示接受的結果  
  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服務來源于http://www.webxml.com.cn,數據來源于中國氣象局"+  
  35. ",包括340多個中國"+  
  36. "主要城市和60多個國外主要城市三日內的天氣情況。作者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="請輸入城市名,支持國內外主要城市"  
  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. <!--顯示結果的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怎么調用WebService.看了這篇文章感覺不錯,先測試一下。

【編輯推薦】

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

 

責任編輯:佚名 來源: 163.com
相關推薦

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開發FOSS開發項目

2020-01-16 15:13:40

AI預測天氣預報

2022-02-21 11:02:54

5G通信網絡天氣預報

2018-01-29 11:25:37

LinuxASCII 字符天氣預報

2020-02-11 20:00:29

開源開源工具天氣預報

2012-07-16 13:36:54

交換機數據中心核心交換機氣象衛星

2013-04-10 17:59:50

微信公眾平臺接口開發

2015-10-19 17:16:10

天氣預報命令行Linux

2009-08-26 16:59:44

Web Service

2009-04-17 17:11:18

ASP.NET新浪天氣

2023-10-27 16:15:35

鴻蒙天氣服務功能

2013-09-09 10:52:10

2022-02-21 15:07:48

氣象學人工智能AI

2012-06-18 15:40:32

jQuery

2019-10-25 19:42:41

華為

2012-03-13 16:45:09

超級計算機沃森Deep Thunde
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频中文字幕 | 日本啊v在线 | 久久噜| 国产超碰人人爽人人做人人爱 | 国产高清不卡 | 成年人在线播放 | 久草日韩 | 91视频进入 | 久久99久久99精品免视看婷婷 | 天天干天天干 | 色婷婷国产精品综合在线观看 | 性一交一乱一透一a级 | 久久久久久高潮国产精品视 | 91在线观 | 日韩精品中文字幕一区二区三区 | 一级做a毛片 | 99久久久国产精品免费消防器 | 日本电影韩国电影免费观看 | 先锋资源站 | www.av在线| 亚洲人成在线观看 | 免费电影av | 青青草亚洲 | 国产一区二区在线免费观看 | 91看片在线 | 91视频网 | 美女日皮网站 | 亚洲区在线 | 亚州综合一区 | 91精品久久久久久久99 | 日韩资源 | 自拍偷拍欧美 | 91 在线| 中文字幕在线免费观看 | 久久精品色欧美aⅴ一区二区 | 五月激情婷婷在线 | 超碰导航 | 亚洲欧美在线一区 | 999免费视频 | 欧美日韩一二区 | 久久久久无码国产精品一区 |