




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第22章AS3.0與網(wǎng)絡(luò)通信Flash之所以能夠有著越來越大的發(fā)展空間,其良好的數(shù)據(jù)交互功能也起著極為重要的作用。在ActionScript3.0中,所有的與外部數(shù)據(jù)進(jìn)行交互的功能都被放在.*包中,有專門的類進(jìn)行管理,而且實(shí)現(xiàn)了流程的的標(biāo)準(zhǔn)、統(tǒng)一,使Flash與外界數(shù)據(jù)的交互更加的清晰與簡(jiǎn)單。本章講著重介紹ActionScript3.0與外界數(shù)據(jù)交互的原理、Flash與外部數(shù)據(jù)的連接和交互以及Flash與計(jì)算機(jī)本地?cái)?shù)據(jù)的交互操作。22.1數(shù)據(jù)通信基礎(chǔ)在創(chuàng)建復(fù)雜的ActionScript3.0應(yīng)用程序時(shí),通常需要與服務(wù)器端腳本進(jìn)行通信,或者從外部XML文件或文本文件加載數(shù)據(jù)。在ActionScript3.0中,使用URLLoader和URLRequest類來加載外部文件。加載成功的文件可使用特定類來訪問數(shù)據(jù),具體使用何類,取決于加載數(shù)據(jù)的數(shù)據(jù)類型。比如如果加載數(shù)據(jù)的格式為名稱值對(duì)類型,則可以使用URLVariables類來分析服務(wù)器結(jié)果。如果加載的文件是外部XML文檔,則可以使用XML類的構(gòu)造函數(shù)、XMLDocument類的構(gòu)造函數(shù)或XMLDocument.parseXML()方法來分析XML文檔。本節(jié)講介紹數(shù)據(jù)通信的原理、從外部文件或服務(wù)器腳本中加載數(shù)據(jù)和將數(shù)據(jù)發(fā)送到服務(wù)器腳本方法。22.1.1構(gòu)建通信請(qǐng)求過程在ActionScript3.0中,要實(shí)現(xiàn)一個(gè)網(wǎng)絡(luò)通信,需要三個(gè)過程來實(shí)現(xiàn),具體為:(1)使用URLRequest創(chuàng)建通信請(qǐng)求對(duì)象。(2)使用通信請(qǐng)求對(duì)象,創(chuàng)建URLLoader載入對(duì)象,并發(fā)出請(qǐng)求的要求。(3)監(jiān)聽URLLoader對(duì)象,在響應(yīng)完成事件后,返回要處理的數(shù)據(jù)。下面來逐步介紹通信的過程和方法。1.構(gòu)建通信請(qǐng)求對(duì)象2.發(fā)出數(shù)據(jù)請(qǐng)求3.獲取返回?cái)?shù)據(jù)22.1.2加載文本格式數(shù)據(jù)文本格式數(shù)據(jù)包括:普通文本、XML、HTML等以UTF-8字符組成的字符串文本都屬于文本格式。下面的示例實(shí)現(xiàn)從外部的test.html文件種讀取數(shù)據(jù),并把它顯示在文本框中,實(shí)現(xiàn)讀取外部html網(wǎng)頁格式文本的效果。test.html文本內(nèi)容如圖所示。test.html文本內(nèi)容22.1.3加載值對(duì)格式數(shù)據(jù)如果要加載的外部文本時(shí)值對(duì)格式的數(shù)據(jù),并且以URL形式編碼,則需要將URLVariables的dataFormat類型設(shè)置為URLLoaderDataFormat.VARIABLES。一般的值對(duì)格式的數(shù)據(jù)樣式如下所示。variable1=value1&variable2=value2。下面的示例實(shí)現(xiàn)從外部的test.txt文檔中取得值對(duì)格式的數(shù)據(jù),并在Flash中使用文本進(jìn)行顯示。test.txt文檔內(nèi)容如下所示。標(biāo)題=AS3.0基礎(chǔ)教材&作者=浪子嘯天&支持網(wǎng)站=22.1.4加載二進(jìn)制格式數(shù)據(jù)二進(jìn)制文件是指包含在ASCII及擴(kuò)展ASCII字符中編寫的數(shù)據(jù)或程序指令的文件。計(jì)算機(jī)文件基本上分為二種:二進(jìn)制文件和ASCII(也稱純文本)文件,圖形文件及文字處理程序等計(jì)算機(jī)程序都屬于二進(jìn)制文件。ASCII則是可以用任何文字處理程序閱讀的簡(jiǎn)單文本文件。在ActionScript3.0中,二進(jìn)制文件主要是為了強(qiáng)調(diào)與文本文件的區(qū)分,大部分的非文本格式文件都被歸為二進(jìn)制文件。在ActionScript3.0中,所有的圖像、SWF文件都可以以二進(jìn)制格式載入,以ByteArray字節(jié)數(shù)組來表示,此數(shù)組儲(chǔ)存在URLLoader對(duì)象的data屬性中。22.1.5發(fā)送數(shù)據(jù)如果需要向服務(wù)器發(fā)送數(shù)據(jù),可以有兩種方式可供選擇:一是若只是發(fā)送不需要返回?cái)?shù)據(jù),則可以使用sendToURL()方法來實(shí)現(xiàn),其用法格式如下:sendToURL(req:URLRequest)二是既需要發(fā)送數(shù)據(jù),也需要返回?cái)?shù)據(jù),則使用Loader對(duì)象的load()方法來實(shí)現(xiàn)。通常的數(shù)據(jù)發(fā)送需要執(zhí)行下面的兩步操作:(1)將需要提交的數(shù)據(jù)放入U(xiǎn)RLRequest對(duì)象的data屬性中,然后使用URLLoader對(duì)象的load()方法發(fā)送數(shù)據(jù)。(2)從URLLoader對(duì)象的data屬性中獲取返回的數(shù)據(jù)并分析。下面的示例實(shí)現(xiàn)將Flash中的數(shù)據(jù)發(fā)送到后臺(tái)的asp文件中,并返回響應(yīng)的數(shù)據(jù)信息。22.1.6打開外部鏈接效果在ActionScript3.0中,要在Flash中打開網(wǎng)址,需要使用包中的navigateToURL()函數(shù)來實(shí)現(xiàn)。其用法格式如下所示。navigateToURL(request:URLRequest,window:String=null)說明:此方法實(shí)現(xiàn)在包含F(xiàn)lashPlayer容器的應(yīng)用程序中,通常是在一個(gè)瀏覽器中,打開或者替換一個(gè)窗口。參數(shù)說明如下:request:URLRequest對(duì)象,指定要鏈接到哪個(gè)URL網(wǎng)頁地址。window:瀏覽器窗口或HTML幀,其中顯示request參數(shù)指示的文檔??梢暂斎肽硞€(gè)特定窗口的名稱,或者是下面的4個(gè)值之一:“_self”指定當(dāng)前窗口中的當(dāng)前幀打開網(wǎng)頁;“_blank”指定一個(gè)新窗口打開網(wǎng)址;“_parent”指定當(dāng)前窗口的父級(jí)窗口打開網(wǎng)址;“_top”指定當(dāng)前窗口中的頂級(jí)框架中打開網(wǎng)址。22.2與JavaScript通信在Flash應(yīng)用程序中,常常使用Web瀏覽器作為宿主程序,以實(shí)現(xiàn)FlashPlayer播放器與外部數(shù)據(jù)之間的數(shù)據(jù)交換。在ActionScript3.0中,使用ExternalInterface類實(shí)現(xiàn)Flash和JavaScript腳本進(jìn)行交互操作。本節(jié)將介紹Flash到JavaScript和JavaScript到Flash的數(shù)據(jù)交互的實(shí)現(xiàn)方法。ExternalInterface類是Flash外部的應(yīng)用程序的編程接口,是一個(gè)能夠在在ActionScript和FlashPlayer容器(通常為Web瀏覽器)之間實(shí)現(xiàn)直接通信的應(yīng)用程序編程接口。使用此接口,可以實(shí)現(xiàn)包含JavaScript的HTML頁與ActionScript之間的通信。在FlashPlayer中,可以使用HTML頁中定義的的JavaScript來調(diào)用ActionScript函數(shù)。ActionScript函數(shù)可以返回一個(gè)值,JavaScript會(huì)立即接收它作為該調(diào)用的返回值。22.2.1JavaScript腳本簡(jiǎn)介JavaScript是一種基于對(duì)象和事件驅(qū)動(dòng)并具有安全性能的腳本語言,此語言可以被嵌入到HTML文件之中。使用JavaScript,可使網(wǎng)頁變得生動(dòng),能夠重復(fù)使用同一段代碼,能夠使與HTML文斷簡(jiǎn)化,減少下載時(shí)間。javaScript語言有很多優(yōu)點(diǎn),具體如下:1.使用簡(jiǎn)單2.動(dòng)態(tài)交互3.跨平臺(tái)操作4.節(jié)約頁面資源22.2.2在網(wǎng)頁中加入JavaScript有兩種方法可以實(shí)現(xiàn)在網(wǎng)頁中加入JavaScript代碼,分別為:直接加入HTML文檔和間接引用js文件。1.直接加入HTML文檔2.間接引用js文檔JavaScript示例代碼
HTML中JavaScript輸出效果
22.2.3Flash向JavaScript傳遞數(shù)據(jù)要實(shí)現(xiàn)Flash向JavaScript傳遞數(shù)據(jù),可以使用ExternalInterface類的call()方法采用異步調(diào)用的方式調(diào)用JavaScript的函數(shù)來實(shí)現(xiàn)。所謂的異步調(diào)用,指的是無需等待函數(shù)的返回值就讓操作繼續(xù)進(jìn)行的函數(shù)調(diào)用方式。ExternalInterface類的call()方法,語法格式如下所示。call(functionName:String,...arguments)說明:此方法為FlashPlayer容器公開的函數(shù),不傳遞參數(shù)或傳遞多個(gè)參數(shù)。如果該函數(shù)不可用,調(diào)用將返回null;否則,它返回由該函數(shù)提供的值。22.2.4JavaScript向Flash傳遞數(shù)據(jù)要實(shí)現(xiàn)JavaScript向Flash傳遞數(shù)據(jù),可以使用ExternalInterface類的addCallback()方法將ActionScript中的函數(shù)注冊(cè)為可以從容器中進(jìn)行調(diào)用。成功調(diào)用addCallBack()后,在容器中使用JavaScript或ActiveX代碼可以調(diào)用在FlashPlayer中注冊(cè)的函數(shù)。ExternalInterface類的addCallback()方法,語法格式如下所示。addCallback(functionName:String,closure:Function)functionName:要在容器中調(diào)用的函數(shù)的函數(shù)名稱。要調(diào)用的closure函數(shù)。其可能是一個(gè)獨(dú)立的函數(shù),或者可能是引用對(duì)象實(shí)例方法的closure方法。通過傳遞closure方法,可以將回調(diào)定向到特定對(duì)象實(shí)例的方法。利用JavaScript向Flash傳遞數(shù)據(jù)的過程,可以實(shí)現(xiàn)下面的操作:調(diào)用ActionScript函數(shù)。使用標(biāo)準(zhǔn)的函數(shù)調(diào)用表示法傳遞參數(shù)。將值返回給JavaScript函數(shù)。22.3So本地?cái)?shù)據(jù)存儲(chǔ)Flash影片運(yùn)行過程中,大多數(shù)的數(shù)據(jù)都存儲(chǔ)于影片本身,一旦影片被關(guān)閉,這些數(shù)據(jù)也就從內(nèi)存中被清除掉,下次運(yùn)行時(shí),數(shù)據(jù)將從頭開始。若想存儲(chǔ)數(shù)據(jù)或者讓客戶端的多個(gè)影片共享同一組數(shù)據(jù),就要想辦法把數(shù)據(jù)存儲(chǔ)在Flash播放器之外。在ActionScript3.0中,SharedObject類實(shí)現(xiàn)了在客戶端機(jī)器中持久性存儲(chǔ)數(shù)據(jù)。有兩種類型的共享對(duì)象:本地和遠(yuǎn)程。本節(jié)主要介紹在本地儲(chǔ)存數(shù)據(jù)。22.3.1創(chuàng)建ShareObject對(duì)象Flash的ShareObject對(duì)象一般簡(jiǎn)稱為SO,類似于Web瀏覽器中的cookies。它們被一些開發(fā)者稱為“超級(jí)cookies”,因?yàn)镾O可以存儲(chǔ)大量數(shù)據(jù),且存儲(chǔ)和讀取的都是原生的ActionScript類型數(shù)據(jù)。ShareObject對(duì)象默認(rèn)的空間大小100KB,用戶可以通過FlashPlayer'sSettingsManager控制的使用空間大小,來嚴(yán)格限制被使用的空間。存儲(chǔ)在本地計(jì)算機(jī)的SO文件是一種二進(jìn)制文件,擴(kuò)展名為.sol。不同的SWF影片可以通過.SharedObject類進(jìn)行讀寫.sol文件。創(chuàng)建的.sol文件被放置在Flash播放器對(duì)應(yīng)的應(yīng)用程序數(shù)據(jù)目錄,以Windows為例,目錄為:C:\DocumentsandSettings\Administrator\ApplicationData\Macromedia\FlashPlayer\#SharedObjects,在此主目錄下使用隨機(jī)字符命名目錄,記錄數(shù)據(jù)。22.3.2向SO上寫入數(shù)據(jù)要實(shí)現(xiàn)添加數(shù)據(jù)到SO上,只需給SO對(duì)象的data屬性添加屬性值。共享對(duì)象SO有個(gè)內(nèi)建的屬性data,data屬性類型為object,因而可以添加任何信息上去。如下面的示例代碼所示。//存儲(chǔ)username值給so共享對(duì)象so.data.username="浪子嘯天";注意:既不能直接向SO共享對(duì)象賦值,也不能直接向SO共享對(duì)象的data屬性賦值,這樣的結(jié)果都是錯(cuò)誤的。如下面的兩行寫入數(shù)據(jù)的方法都是錯(cuò)誤的,錯(cuò)誤代碼如下所示。so.username="浪子嘯天";so.data="浪子嘯天";22.3.3讀取SO數(shù)據(jù)要實(shí)現(xiàn)在客戶端讀取SO數(shù)據(jù),原理很簡(jiǎn)單。因?yàn)檫@些持久性數(shù)據(jù)都保存在共享對(duì)象的data屬性里,只需要訪問Data對(duì)象的相關(guān)屬性就Ok了。下面的示例實(shí)現(xiàn)讀取SO中儲(chǔ)存的數(shù)據(jù),代碼如下所示。varso:SharedObject=SharedObject.getLocal("test")//將數(shù)據(jù)寫入soso.data.username="浪子嘯天"so.data.sex="男"http://寫入數(shù)據(jù)so.flush()//讀取so中的usernamevaruser=so.data.usernametrace(user)//輸出:浪子嘯天trace(so.data.sex)//輸出:男22.3.4刪除保存的SO共享數(shù)據(jù)要實(shí)現(xiàn)刪除共享對(duì)象中的某個(gè)屬性值或者刪除整個(gè)共享對(duì)象,需要使用兩種不同的方法:用delete刪除共享對(duì)象的data屬性中的值;使用clear()方法清除整個(gè)共享對(duì)象。下面
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 外墻冬季施工方案
- 防滑地磚樓面施工方案
- 2025年天津法檢筆試試題及答案
- 2025年找貨運(yùn)司機(jī)面試題及答案
- 低利率時(shí)代的投資和資產(chǎn)配置策略
- 噴射砂漿加固施工方案
- 清理植被灌木施工方案
- 鋼構(gòu)的施工方案
- 2025年唐山工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫參考答案
- 2025年山東省濱州地區(qū)單招職業(yè)適應(yīng)性測(cè)試題庫新版
- DB43∕T 801-2013 二次張拉低回縮鋼絞線豎向預(yù)應(yīng)力短索錨固體系設(shè)計(jì)、施工和驗(yàn)收規(guī)范
- 附表1:網(wǎng)絡(luò)及信息安全自查表
- 奇妙的海洋生物
- 精裝修工程一戶一驗(yàn)記錄表
- 公共場(chǎng)所健康證體檢表
- 普通高等學(xué)校獨(dú)立學(xué)院教育工作合格評(píng)估指標(biāo)體系(第六稿)
- 哈薩克斯坦共和國有限責(zé)任公司和補(bǔ)充責(zé)任公司法
- 多維閱讀第13級(jí)—A Stolen Baby 小猩猩被偷走了
- 三愛三節(jié)-主題班會(huì)
- 2018版公路工程質(zhì)量檢驗(yàn)評(píng)定標(biāo)準(zhǔn)分項(xiàng)工程質(zhì)量檢驗(yàn)評(píng)定表交通安全設(shè)施
- (完整版)電機(jī)學(xué)第五版課后答案_(湯蘊(yùn)璆)
評(píng)論
0/150
提交評(píng)論