套件 | flash.media |
類別 | public class AVURLStream |
繼承 | AVURLStream URLStream EventDispatcher Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
URLStream 中的讀取作業是非阻隔式。 這表示您必須使用 bytesAvailable
屬性來判斷是否有足夠的可用資料,然後再讀取資料。 如果沒有足夠的可用資料,就會擲回 EOFError
例外。
根據預設,所有二進位資料都會使用 Big-Endian 格式編碼,而且是最高位元組在前。
套用至使用 URLStream 類別之 URL 下載的安全性規則與套用至 URLLoader 物件的規則完全相同。 原則檔會視需要下載。 本機檔案安全性規則會強制套用,而且安全性警告會視需要提出。
相關 API 元素
URLRequest
屬性 | 定義自 | ||
---|---|---|---|
bytesAvailable : uint [唯讀]
會傳回可在輸入緩衝區中讀取之資料的位元組數。 | URLStream | ||
connected : Boolean [唯讀]
指出此 URLStream 物件目前是否已連線。 | URLStream | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
cookieHeader : String [唯寫] | AVURLStream | ||
endian : String
表示資料的位元組順序。 | URLStream | ||
objectEncoding : uint
會控制寫入或讀取物件時使用的 Action Message Format (AMF) 版本。 | URLStream |
方法 | 定義自 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。 | EventDispatcher | ||
會立即關閉串流並取消下載作業。 | URLStream | ||
會將事件傳送到事件流程。 | EventDispatcher | ||
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。 | EventDispatcher | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
[覆寫]
開始下載 request 參數中指定的 URL。 | AVURLStream | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
會從串流讀取 Boolean 值。 | URLStream | ||
會從串流讀取具有正負號的位元組。 | URLStream | ||
從串流讀取資料的 length 位元組。 | URLStream | ||
會從串流讀取 IEEE 754 雙精度浮點數。 | URLStream | ||
會從串流讀取 IEEE 754 單精度浮點數。 | URLStream | ||
會從串流讀取具有正負號的 32 位元整數。 | URLStream | ||
會使用指定的字元集,從位元組串流讀取指定之長度的多位元組字串。 | URLStream | ||
readObject():*
會從通訊端讀取物件,以 Action Message Format (AMF) 編碼。 | URLStream | ||
會從串流讀取具有正負號的 16 位元整數。 | URLStream | ||
會從串流讀取無正負號的位元組。 | URLStream | ||
會從串流讀取無正負號的 32 位元整數。 | URLStream | ||
會從串流讀取無正負號的 16 位元整數。 | URLStream | ||
會從串流讀取 UTF-8 字串。 | URLStream | ||
從串流讀取 length UTF-8 位元組的序列,然後傳回字串。 | URLStream | ||
會從 EventDispatcher 物件移除偵聽程式。 | EventDispatcher | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object | ||
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。 | EventDispatcher |
cookieHeader | 屬性 |
load | () | 方法 |
override public function load(request:URLRequest):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會開始下載 request
參數中指定的 URL。
注意: 如果正在下載的檔案包含非 ASCII 字元 (例如,許多非英文語系字元),建議您將檔案儲存為 UTF-8 或 UTF-16 編碼,而不要儲存為類似 ASCII 的非 Unicode 格式。
如果載入作業立即失敗,就會擲回描述失敗的 IOError 或 SecurityError (包括本機檔案安全性錯誤) 例外; 否則,如果 URL 下載順利開始下載,便會傳送 open
事件,或者在發生錯誤時會傳送錯誤事件。
根據預設,呼叫的 SWF 檔與您所載入的 URL 必須位於完全相同的網域中。例如,www.adobe.com 的 SWF 檔只能從同樣在 www.adobe.com 中的來源載入資料。 若要從不同的網域載入資料,請在存放該資料的伺服器上放置一個 URL 原則檔案。
您無法從 Flash Player 連線到常用的保留連接埠。完整的封鎖連接埠清單,請參閱在「ActionScript 3.0 開發人員指南」中的「限制網路 API」。
在 Flash Player 中,如果您希望防止 SWF 檔使用此方法,可以在包含 SWF 內容的 HTML 頁面中,設定 object
和 embed
標籤的 allowNetworking
參數。
在 Flash Player 10 和 AIR 1.5 及其更新版本,如果您使用包含上載 (由 POST 主體中 "content-disposition" 檔頭的 "filename" 參數指示) 的多部分 Content-Type (例如 "multipart/form-data"),POST 作業會受限於上載所套用的安全性規則:
- 必須執行 POST 作業,以回應使用者啟動的動作 (例如按下滑鼠或按下按鍵)。
- 如果 POST 作業會跨越網域 (POST 目標與傳送 POST 要求的 SWF 檔不在同一部伺服器上),目標伺服器必須提供允許跨網域存取的 URL 原則。
此外,多部分的 Content-Type 語法必須有效 (符合 RFC2046 標準)。如果語法無效,POST 作業會受限於上載所套用的安全性規則。
這些規則僅適用於非應用程式安全執行程序中的 AIR 內容。但在 Adobe AIR 中,位於應用程式安全執行程序的內容 (使用 AIR 應用程式所安裝的內容) 沒有這些安全性限制。
如需安全性詳細資訊,請參閱「Flash Player 開發人員中心」主題:安全性。
在 AIR 中,URLRequest 物件能夠註冊 httpResponse
狀態事件。與 httpStatus
事件不同,httpResponseStatus
事件在傳送任何回應資料之前會行先傳送。此外,httpResponseStatus
事件也包含 responseHeaders
和 responseURL
屬性的值 (尚未針對 httpStatus
事件而定義)。請注意,httpResponseStatus
(如果有的話) 將在 (另外) 任何 complete
或 error
事件之前傳送。
如果「已有」httpResponseStatus
事件偵聽程式,就「一定」會傳送回應訊息的主體,而且 HTTP 狀態碼回應必然造成 complete
事件。無論 HTTP 回應狀態碼指出成功或錯誤都是如此。
在 AIR 中,如果「沒有」httpResponseStatus
事件偵聽程式,其行為將因 SWF 版本而異:
- 若為 SWF 9 內容,只有當 HTTP 回應狀態碼指出成功時,才會傳送 HTTP 回應訊息的主體。反之 (一旦發生錯誤) 便不會傳送任何主體,且 URLRequest 物件將傳送 IOError 事件。
- 若為 SWF 10 內容,「一律」會傳送 HTTP 回應訊息的主體。一旦發生錯誤,URLRequest 物件將傳送 IOError 事件。
參數
request:URLRequest — 指定要下載之 URL 的 URLRequest 物件。 如果這個參數的值或傳遞之 URLRequest 物件的 URLRequest.url 屬性為 null ,應用程式就會擲出 null 指標錯誤。
|
事件
complete: — 會在順利載入資料之後傳送。如果有 httpResponseStatus 事件偵聽程式,URLRequest 物件也會傳送 complete 事件,無論 HTTP 回應狀態碼指出成功或失敗都是如此。
| |
httpStatus: — 如果是透過 HTTP 存取,而且目前的環境支援取得狀態碼,則除了任何 complete 或 error 事件以外,您還可以收到這些事件。
| |
httpResponseStatus: — 當 load() 方法呼叫嘗試透過 HTTP 存取資料,而且 Adobe AIR 能夠偵測並傳回要求的狀態碼時傳送。
| |
ioError: — 無法完成載入作業。
| |
open: — 在載入作業開始時傳送。
| |
securityError: — 載入作業嘗試從呼叫者之安全執行程序以外的伺服器擷取資料。 您可以使用伺服器上的原則檔來解決此問題。
|
擲回值
ArgumentError — URLRequest.requestHeader 物件可能不會包含特定禁止的 HTTP 要求檔頭。 如需詳細資訊,請參閱 URLRequestHeader 類別的說明。
| |
MemoryError — 這項錯誤可能會因為下列原因而發生:
| |
SecurityError — 本機不受信任的 SWF 檔可能無法與網際網路進行通訊。您可以透過將此 SWF 檔重新分類為「具有網路連線的本機」或受信任,解決此問題。
| |
SecurityError — 您正嘗試連線到常用的保留連接埠。完整的封鎖連接埠清單,請參閱在「ActionScript 3.0 開發人員指南」中的「限制網路 API」。
|
Tue Jun 12 2018, 03:47 PM Z