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

學(xué)習(xí)筆記 用Flash和Flex創(chuàng)建WebService客戶端

開發(fā) 后端
本文向大家介紹一下如何用Flash和Flex創(chuàng)建WebService客戶端,在所有的各種各樣的豐富了Web瀏覽體驗(yàn)的瀏覽器附件中,最有用的當(dāng)然是幾乎無所不在的Flashplayer。

在學(xué)習(xí)Flex的過程中,你可能會(huì)遇到用Flash和Flex創(chuàng)建WebService客戶端的概念,這里和大家分享一下,希望本文的介紹能讓你有所收獲。

用Flash和Flex創(chuàng)建WebService客戶端

在所有的各種各樣的豐富了Web瀏覽體驗(yàn)的瀏覽器附件中,最有用的當(dāng)然是幾乎無所不在的Flashplayer。這個(gè)瀏覽器插件最先受到高度關(guān)注是在1996年發(fā)布的MacromediaFlash1.0,然后每隔一小段時(shí)間就會(huì)做重大改進(jìn),現(xiàn)在的版本是第9版。在2005年底Macromedia和Adobe合并,所以當(dāng)前的插件的全稱是AdobeFlashPlayer9。

  Flashplayer執(zhí)行可由多種制作技術(shù)創(chuàng)建的SWF(用于ShockWaveFlash)文件。SWF文件包括圖片、布局和邏輯信息,但是應(yīng)用也可以從網(wǎng)絡(luò)或本地文件系統(tǒng)加載數(shù)據(jù)和程序。程序員只要做少量的工作就可以達(dá)到壯觀的效果。

  被限制于瀏覽器插件環(huán)境限制了豐富互聯(lián)網(wǎng)應(yīng)用程序(RIA)的可能應(yīng)用。基于這一認(rèn)識(shí),Adobe正致力于一個(gè)被稱作AdobeIntegratedRuntime或AIR的單獨(dú)的桌面應(yīng)用環(huán)境,它以前的代號(hào)是Apollo。

  Flex語言

  AdobeFlex在.MXML文件里為FlashPlayer的XML格式定義提供了用戶界面。Java程序員對(duì)控制像“網(wǎng)格”布局這樣的組件布局很熟悉。很合理的,默認(rèn)模式被定義為讓你從目前就可以運(yùn)行,之后把布局更完善的狀態(tài)開始。

  MXML文件,可以由任何文本編輯器或?qū)iT的IDE創(chuàng)建,它由Flex編譯器編譯到可由Flashplayer執(zhí)行的SWF文件中去。在FlexSoftwareDevelopmentKit(SDK)中提供了一個(gè)免費(fèi)的編譯器和許多展示Flash界面能力的例子。

  與Flex1.0版本的對(duì)比之下,F(xiàn)lex2.0SDK的許可條款刪除了所有對(duì)采用一個(gè)Macromedia服務(wù)器來運(yùn)行SWF文件的要求。當(dāng)然,Adobe將很高興賣給你FlexBuilderIDE,但是你可以免費(fèi)體驗(yàn)和展示你的Flash創(chuàng)作。

  據(jù)預(yù)計(jì),F(xiàn)lexSDK不久就會(huì)作為MozillaPublicLicense之下的一個(gè)開源的來發(fā)布。這是一個(gè)商業(yè)應(yīng)用的友好許可,它反映了Adobe想要?jiǎng)?chuàng)建有活力的Flex開發(fā)者社區(qū)的愿望。

  第一個(gè)開源版本將被命名為Flex3,目前處于測(cè)試版,正式版預(yù)計(jì)將于秋季發(fā)布。

  ScriptingFlexapplications

  在FlashPlayer中處理用戶事件、邏輯和數(shù)據(jù)是由ActionScript來完成的,它是一個(gè)基于ECMA-262國際標(biāo)準(zhǔn)的腳本語言,JavaScript就是基于這個(gè)標(biāo)準(zhǔn)。雖然名義上為“腳本”語言,但封裝于一個(gè)Flash應(yīng)用內(nèi)的ActionScript是編譯成字節(jié)碼,由虛擬機(jī)執(zhí)行,就像Java和.NET。ActionScript函數(shù)可以和同一個(gè)網(wǎng)頁上的JavaScript程序通信。

  最新版本ActionScript3.0,于2006年6月2日與Flex2和FlashPlayer9一起發(fā)布,它做了重大改寫,能力得到了很大提高。ActionScript3.0實(shí)現(xiàn)ECMAScriptforXML(E4X)標(biāo)準(zhǔn)ECMA-357來處理XML作為一個(gè)內(nèi)置數(shù)據(jù)類型,從而幫助Ajax動(dòng)態(tài)數(shù)據(jù)獲得和處理Webservices。

  ActionScript3編譯成一個(gè)新的字節(jié)碼scheme,它和以前所有版本都不兼容,所以目前的FlashPlayer插件實(shí)際上包含2個(gè)虛擬機(jī)來和以前的scripts以及最新版的一起工作。為了獲得更高的性能,ActionScript3采用“justintime”(JIT)編譯器將字節(jié)碼編譯成原始機(jī)器代碼。#p#

一個(gè)簡(jiǎn)單的Flex例子

  現(xiàn)在讓我們看一個(gè)簡(jiǎn)單的用于Flash應(yīng)用的Flex腳本。一個(gè)腳本必須是一個(gè)完整的、將mx:Application標(biāo)簽作為根元素的XML文檔。在這個(gè)例子中,所有的界面組件都被包括在一個(gè)簡(jiǎn)單的"mx:Panel"標(biāo)簽中。注意mx:Button標(biāo)簽指定一個(gè)"click"屬性擁有"news.send()"的值,這定義了當(dāng)按鈕被點(diǎn)擊時(shí)會(huì)調(diào)用事件處理器。ActionScript遵循W3CDOMlevel3事件命名習(xí)慣,所以這個(gè)事件是"click"而不是"onclick"。

 

  1. <?xmlversionxmlversion="1.0"encoding="utf-8"?> 
  2. <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"xmlns="*"> 
  3.  
  4. <mx:Panelidmx:Panelid="holder"width="500"height="500"> 
  5. <mx:Labelidmx:Labelid="title"fontSize="14"fontStyle="bold" 
  6. text="Clickforcurrentnews"/> 
  7. <mx:Buttonidmx:Buttonid="reload"label="Reload"width="200" 
  8. click="news.send()"/> 
  9. <mx:TextAreaidmx:TextAreaid="mainTxt"width="100%"height="400"> 
  10. <mx:htmlText><![CDATA[Ready]]></mx:htmlText> 
  11. </mx:TextArea> 
  12. </mx:Panel> 
  13.  
  14. <mx:HTTPServiceidmx:HTTPServiceid="news"method="GET"  
  15. url="http://www.wbrogdenx.com/news.html" 
  16. resultFormat="text" 
  17. result="newsResultHandler(event);" 
  18. fault="newsFaultHandler(event);"/> 
  19.  
  20. <mx:Script> 
  21. <![CDATA[  
  22. importmx.rpc.events.FaultEvent;  
  23. importmx.rpc.events.ResultEvent;  
  24. publicfunctionnewsResultHandler(event:ResultEvent):void  
  25. {mainTxt.htmlText=event.resultasString;  
  26. }  
  27.  
  28. publicfunctionnewsFaultHandler(event:FaultEvent):void  
  29. {mainTxt.text=event.fault.message;  
  30. }  
  31. ]]> 
  32. </mx:Script> 
  33.  
  34. </mx:Application> 
  35.  

   mx:HTTPService標(biāo)簽中的代碼是發(fā)送一個(gè)請(qǐng)求到指定的URL和定義返回的數(shù)據(jù)怎樣處理,在這個(gè)示例中是作為純文本處理。如果ResultFormat是"e4x",那么結(jié)果將是XML格式。實(shí)際上發(fā)送一個(gè)請(qǐng)求和獲得一個(gè)結(jié)果的過程只有在通過鼠標(biāo)點(diǎn)擊反映在mx:Button上,然后調(diào)用隱含的send()方法的情況下才發(fā)生。這一過程終止于調(diào)用正常結(jié)果處理方法或出錯(cuò)處理方法。Flex提供其他類型的遠(yuǎn)程服務(wù)訪問,我選擇這個(gè)例子是因?yàn)樗墙忉屵@個(gè)的最簡(jiǎn)單的例子。

  ActionScript函數(shù)被包括在一對(duì)mx:Script標(biāo)簽內(nèi),使用了CDATA,以便可以使用像<這樣的特殊字符而不會(huì)干擾XML解析。你還可以引入外部ActionScript文檔。#p#

 關(guān)于SDK的更多信息.

  一旦你安裝了SDK,你就可以編譯所提供的應(yīng)用示例。這些示例不是微不足道的應(yīng)用,他們是學(xué)習(xí)Flex和ActionScript的很好的教材。尤其是"ComponentExplorer"應(yīng)用列出因工作實(shí)例而運(yùn)行著的各種Flex組件和源代碼。

  除了編譯器和示例,SDK還包含了兩個(gè)調(diào)試版本的AdobeFlashPlayer9插件,一個(gè)用于IE,另一個(gè)用于其他的所有瀏覽器。

  分配Flex應(yīng)用

  Flex應(yīng)用可以作為SWF文件預(yù)編譯,然后直接服務(wù)于FlashPlayer,或動(dòng)態(tài)編譯然后由專門的服務(wù)器組裝。以HTML形式內(nèi)嵌到FlashPlayer中,以此來創(chuàng)建一個(gè)豐富的網(wǎng)絡(luò)應(yīng)用不是那么簡(jiǎn)單的。因?yàn)榕c其他許多瀏覽器不兼容,所以IE和其他瀏覽器比如Netscape是不同的。瀏覽器安全設(shè)置會(huì)妨礙JavaScript和ActionScript的運(yùn)行。

  RIA競(jìng)爭(zhēng)

  正如我以前的文章中談到的,Sun的JavaFX腳本語言意圖將十分靈活和可定制的"Swing"組件庫帶到RIA的舞臺(tái)上。JavaFX有個(gè)更大的Java函數(shù)庫在必要的時(shí)候使用,而Flex擅長(zhǎng)壯觀的用戶界面效果。

  在今年的四月,Microsoft發(fā)布了一個(gè)瀏覽器插件,名為"Silverlight",它很顯然是為了和FlashPlayer競(jìng)爭(zhēng)。Silverlightplayer1.0目前可用于Windows和Mac瀏覽器。因?yàn)镸icrosoft可以確保新的電腦都安裝有Silverlight并自動(dòng)更新,所以它終將變得極為廣泛。

【編輯推薦】

  1. Flex動(dòng)態(tài)讀取外部XML文件
  2. Flex主題創(chuàng)建及支持的樣式設(shè)置方式
  3. 全面認(rèn)識(shí)Flex應(yīng)用程序的六大元素
  4. 揭開Flex正則表達(dá)式的神秘面紗
  5. Flex數(shù)據(jù)綁定及其使用頻繁的幾種情況 


 

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

2010-06-01 14:11:11

TortoiseSVN

2009-08-06 17:12:13

C# WebServi

2010-07-29 08:53:24

Flex客戶端

2009-08-07 13:55:35

Java客戶端類調(diào)用C# WebServi

2010-07-29 13:18:45

Flex右鍵菜單

2021-09-22 15:46:29

虛擬桌面瘦客戶端胖客戶端

2010-05-28 09:31:10

修改SVN密碼

2012-01-13 10:29:37

ibmdw

2017-02-08 08:56:22

2010-07-28 16:16:57

Flex富客戶端

2009-02-04 17:39:14

ibmdwWebSphereDataPower

2010-07-30 14:09:30

FlexFlash

2010-08-11 11:17:49

FlexFlash

2010-02-22 09:03:22

零客戶端瘦客戶端VDI終端

2010-05-14 16:11:52

Subversion命

2010-05-14 16:57:01

Subversion命

2010-07-29 09:08:20

Flex客戶端緩存

2011-09-09 09:44:23

WCF

2009-03-13 14:44:55

客戶端C#Oracle

2011-08-17 10:10:59

點(diǎn)贊
收藏

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