AS3 中使用URLRequest 和URLLoader 與服務(wù)器交互
AS3 中使用 URLLoader 與 URLRequest 取代了先前版本 LoadVars 方法. 初學(xué)者可能又會迷糊了. 在現(xiàn)在幫助系統(tǒng)沒有完善的情況下 (Flash 9 沒有幫助, Flex Builder 2 的只有英文), 這里寫篇簡單的教程, 方便大家往 AS3 過渡.
在 AS3 中, 有關(guān)于網(wǎng)絡(luò)操作的內(nèi)置類全部在 flash.net 里. 下面是本教程要用到的類的清單 :
URLLoader : 用于從網(wǎng)絡(luò)或者本地讀取文件, 可以通過設(shè)置他的 dataFormat 屬性改變收到的文本類型. 與 AS2 的 LoadVars 不同的是, 他的默認(rèn)值 URLLoaderDataFormat.TEXT 即純文本格式, 所以在讀取外部文本變量的時候得修改一下他的 dataFormat 為URLLoaderDataFormat.VARIABLES. 不過在 AS2 中沒有該屬性, 取代的是contentType 屬性.
URLRequest : 用于傳遞變量到服務(wù)器, 以及 URLLoader 要 load 的目標(biāo)路徑. 可以通過設(shè)置他的 contentType 屬性改變發(fā)送到服務(wù)器的變量類型, 默認(rèn)是 application/x-form-urlencoding, 也就是 URLEncode 編碼.
URLVariables : 用于配置傳遞到服務(wù)器變量的鍵 / 值集合, 如user1=Kakera&user2=Eigo.
URLLoaderDataFormat : 用于設(shè)置 URLLoader 讀取文件的類型, 有 TEXT (純文本), VARIABLES (URLEncoding 的鍵 / 值集合), BINARY (2 進制格式), URLLoader 會根據(jù)相應(yīng)的類型進行解碼操作, 如解碼 URLEncode
同時還有其他不常用的 : URLRequestMethod : 決定使用哪種方式傳遞數(shù)據(jù)到服務(wù)器, POST 或者 GET. URLReqeustHeader : 用于配置傳遞到服務(wù)端的 HTTP 標(biāo)頭.
值得一提的是, URLLoader 還有相當(dāng)完整的事件讓我們來獲取讀取數(shù)據(jù)的狀態(tài), 下面是有關(guān) URLLoader 事件的清單.
complete : 使用 URLLoader.load() 方法后, 數(shù)據(jù)完全加載完畢時觸發(fā), 通常如果能夠觸發(fā)這個事件的話, 說明你的程序沒有問題.
httpStatus : 使用 URLLoader.load() 方法后, 獲取 HTTP 狀態(tài)代碼時觸發(fā), 通過判斷他的 state 屬性我們可以獲得遠程文件的加載狀態(tài). 成功 (200), 沒有權(quán)限 (403), 找不到文件 (404), 服務(wù)器內(nèi)部錯誤 (500) 等等. 這個事件總是在 compelete 之前被觸發(fā).
ioError : 使用 URLLoader.load() 方法時, 發(fā)生致命錯誤時觸發(fā), 我還沒碰到過..
open : 使用 URLLoader.load() 方法后, 開始從服務(wù)器下載數(shù)據(jù)時觸發(fā)一次, 此時的 URLLoader.bytesLoaded 一定是 0.
progress : 使用 URLLoader.load() 方法后, 在從服務(wù)器下載數(shù)據(jù)的過程中持續(xù)觸發(fā), 通過偵聽他的變化我們可以很方便的為 URLLoader 做加載狀態(tài)的顯示.
securityError : FlashPlayer 的安全錯誤, 比如跨域加載, 從硬盤 (文件系統(tǒng)) 發(fā)送 / 讀取服務(wù)器上的數(shù)據(jù).
關(guān)于注冊偵聽器的建議
flashplayer 內(nèi)置類的所有事件都有相關(guān)事件類常量來表示, 推薦使用他們來注冊事件偵聽器. 而所有的內(nèi)置類的事件類 (Event) 全部在 flash.events 包中,如使用:
import flash.events.Event; urlLoaderInstance.addEventListener(Event.COMPLETE, completeHandler);
來代替
urlLoaderInstance.addEventListener("complete", completeHandler);
下面是 URLLoader 支持的事件所對應(yīng)類的清單, 他們可以在 Flex Builder 2 的文檔中找到:
complete : Event.COMPLETE httpStatus : HTTPStatusEvent.HTTP_STATUS ioError : IOErrorEvent.IO_ERROR open : Event.OPEN progress : ProgressEvent.PROGRESS securityError : SecurityErrorEvent.SECURITY_ERROR
出處:藍色理想
責(zé)任編輯:moby
上一頁 下一頁 AS3中與服務(wù)器交互 [2]
◎進入論壇Flash專欄版塊參加討論
|