套件 | flash.media |
類別 | public class AVURLLoader |
繼承 | AVURLLoader URLLoader EventDispatcher Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
URLLoader 物件會先從 URL 下載所有資料,然後再讓應用程式中的程式碼使用此資料。它會送出有關下載進度的通知,而且您可以透過 bytesLoaded
和 bytesTotal
屬性以及傳送的事件監視進度。
當載入非常大的視訊檔 (如 FLV) 時,可能會發生記憶體不足錯誤。
當您在 Flash Player 中或不是在應用程式安全執行程序的 AIR 應用程式內容中使用此類別時,請考慮下列安全性模型:
- 位於具有檔案系統的本機安全執行程序中的 SWF 檔不可以從位於網路安全執行程序中的資源載入資料,或提供資料給此資源。
- 根據預設,呼叫的 SWF 檔與您所載入的 URL 必須位於完全相同的網域中。例如,www.adobe.com 的 SWF 檔只能從同樣在 www.adobe.com 中的來源載入資料。 若要從不同的網域載入資料,請在存放該資料的伺服器上放置一個 URL 原則檔案。
如需安全性詳細資訊,請參閱「Flash Player 開發人員中心」主題:安全性。
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
bytesLoaded : uint = 0
指出載入作業截至目前為止已載入的位元組數目。 | URLLoader | ||
bytesTotal : uint = 0
指出下載資料中的位元組總數。 | URLLoader | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
cookieHeader : String [唯寫] | AVURLLoader | ||
data : *
會從載入作業接收的資料。 | URLLoader | ||
dataFormat : String = "text"
控制要以文字 (URLLoaderDataFormat.TEXT)、原始二進位資料 (URLLoaderDataFormat.BINARY) 或 URL 編碼之變數 (URLLoaderDataFormat.VARIABLES) 的形式接收下載的資料。 | URLLoader |
方法 | 定義自 | ||
---|---|---|---|
AVURLLoader(request:URLRequest = null)
會建立 URLLoader 物件。 | AVURLLoader | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void [覆寫] | AVURLLoader | ||
[覆寫]
會關閉進行中的載入作業。 | AVURLLoader | ||
會將事件傳送到事件流程。 | EventDispatcher | ||
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。 | EventDispatcher | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
[覆寫]
會從指定的 URL 傳送並載入資料。 | AVURLLoader | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
會從 EventDispatcher 物件移除偵聽程式。 | EventDispatcher | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object | ||
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。 | EventDispatcher |
事件 | 摘要 | 定義自 | ||
---|---|---|---|---|
[廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。 | EventDispatcher | |||
在所有接收的資料都已解碼,並放置於 URLLoader 物件的 data 屬性之後傳送。 | AVURLLoader | |||
[廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。 | EventDispatcher | |||
當 load() 方法呼叫嘗試透過 HTTP 存取資料,而且 Adobe AIR 能夠偵測並傳回要求的狀態碼時傳送。 | AVURLLoader | |||
當 URLLoader.load() 呼叫嘗試透過 HTTP 存取資料時傳送。 | AVURLLoader | |||
在 URLLoader.load() 的呼叫產生終止下載的嚴重錯誤時傳送。 | AVURLLoader | |||
在呼叫 URLLoader.load() 方法後開始進行下載作業時傳送。 | AVURLLoader | |||
在下載作業進行中收到資料時傳送。 | AVURLLoader | |||
當 URLLoader.load() 的呼叫嘗試從安全執行程序以外的伺服器載入資料時傳送。 | AVURLLoader |
cookieHeader | 屬性 |
AVURLLoader | () | 建構函式 |
public function AVURLLoader(request:URLRequest = null)
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會建立 URLLoader 物件。
參數request:URLRequest (default = null ) — 指定要下載之 URL 的 URLRequest 物件。 如果省略此參數,就不會開始任何載入作業。 如果指定此參數,就會立即開始載入作業 (如需詳細資訊,請參閱 load 項目)。
|
相關 API 元素
addEventListener | () | 方法 |
close | () | 方法 |
override public function close():void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會關閉進行中的載入作業。 任何進行中的載入作業都會立即終止。 如果目前並未串流任何 URL,就會擲回無效的串流錯誤。
load | () | 方法 |
override public function load(request:URLRequest):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會從指定的 URL 傳送並載入資料。 根據 dataFormat
屬性設定的值而定,您能以文字、原始二進位資料或 URL 編碼之變數的形式接收此資料。 請注意,dataFormat
屬性的預設值為文字。 如果您想要將資料傳送至指定的 URL,可以在 URLRequest 物件中設定 data
屬性。
注意:如果下載的檔案包含非 ASCII 字元 (如在許多非英文語系中找到的字元),建議您將檔案儲存為 UTF-8 或 UTF-16 編碼,而不要儲存為類似 ASCII 的非 Unicode 格式。
位於具有檔案系統的本機安全執行程序中的 SWF 檔不可以從位於網路安全執行程序中的資源載入資料,或提供資料給此資源。
根據預設,呼叫的 SWF 檔與您所載入的 URL 必須位於完全相同的網域中。例如,www.adobe.com 的 SWF 檔只能從同樣在 www.adobe.com 中的來源載入資料。 若要從不同的網域載入資料,請在存放該資料的伺服器上放置一個 URL 原則檔案。
您不可以連接到常用的保留連接埠。完整的封鎖連接埠清單,請參閱在「ActionScript 3.0 開發人員指南」中的「限制網路 API」。
在 Flash Player 10 和更新版本中,如果您使用包含上載 (由 POST 主體中 "content-disposition" 檔頭的 "filename" 參數指示) 的多部分 Content-Type (例如 "multipart/form-data"),POST 作業會受限於上載所套用的安全性規則:
- 必須執行 POST 作業,以回應使用者啟動的動作 (例如按下滑鼠或按下按鍵)。
- 如果 POST 作業會跨越網域 (POST 目標與傳送 POST 要求的 SWF 檔不在同一部伺服器上),目標伺服器必須提供允許跨網域存取的 URL 原則。
此外,多部分的 Content-Type 語法必須有效 (符合 RFC2046 標準)。如果語法無效,POST 作業會受限於上載所套用的安全性規則。
如需安全性詳細資訊,請參閱「Flash Player 開發人員中心」主題:安全性。
參數
request:URLRequest — 指定要下載之 URL 的 URLRequest 物件。
|
事件
complete: — 會在順利載入資料之後傳送。
| |
httpStatus: — 如果是透過 HTTP 存取,而且目前的 Flash Player 環境支援取得狀態碼,則除了所有的 complete 或 error 事件以外,您還可以收到這些事件。
| |
ioError: — 無法完成載入作業。
| |
progress: — 在下載作業進行中收到資料時傳送。
| |
securityError: — 載入作業嘗試從呼叫者之安全執行程序以外的伺服器擷取資料。 您可以使用伺服器上的原則檔來解決此問題。
| |
securityError: — 載入作業嘗試載入 SWZ 檔 (Adobe 平台組件),但憑證無效或摘要與組件不符。
| |
open: — 在載入作業開始時傳送。
| |
httpResponseStatus: — 當 load() 方法呼叫嘗試透過 HTTP 存取資料,而且 Adobe AIR 能夠偵測並傳回要求的狀態碼時傳送。
|
擲回值
ArgumentError — URLRequest.requestHeader 物件可能不會包含特定禁止的 HTTP 要求檔頭。 如需詳細資訊,請參閱 URLRequestHeader 類別的說明。
| |
MemoryError — 這項錯誤可能會因為下列原因而發生:1) Flash Player 或 AIR 無法將 URLRequest.data 參數從 UTF8 轉換成 MBCS。如果傳遞給 load() 的 URLRequest 物件設定為執行 GET 作業,而且 System.useCodePage 設定為 true ,就會發生這項錯誤。2) Flash Player 或 AIR 無法分配 POST 資料的記憶體。如果傳遞給 load 的 URLRequest 物件設定為執行 POST 作業,就會發生這項錯誤。
| |
SecurityError — 本機不受信任的 檔可能無法與網際網路進行通訊。 您可以透過將此 檔重新分類為「具有網路連線的本機」或受信任,解決此問題。
| |
SecurityError — 您正嘗試連線到常用的保留連接埠。完整的封鎖連接埠清單,請參閱在「ActionScript 3.0 開發人員指南」中的「限制網路 API」。
| |
TypeError — 要求參數的值或傳遞之 URLRequest 物件的 URLRequest.url 屬性都為 null 。
|
相關 API 元素
URLRequest.requestHeaders
URLRequest.data
URLRequest.digest
complete | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.COMPLETE
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在所有接收的資料都已解碼,並放置於 URLLoader 物件的 data 屬性之後傳送。一旦傳送這個事件,就可以存取接收的資料。
Event.COMPLETE
常數會定義 complete
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 已完成載入的網路物件。 |
相關 API 元素
httpResponseStatus | 事件 |
flash.events.HTTPStatusEvent
屬性 HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, AIR 1.0, Flash Lite 4 |
當 load() 方法呼叫嘗試透過 HTTP 存取資料,而且 Adobe AIR 能夠偵測並傳回要求的狀態碼時傳送。
與httpStatus
事件不同,httpResponseStatus
事件在傳送任何回應資料之前會行先傳送。此外,httpResponseStatus
事件也包含 responseHeaders
和 responseURL
屬性的值 (尚未針對 httpStatus
事件而定義)。請注意,httpResponseStatus
(如果有的話) 將在 (另外) 任何 complete
或 error
事件之前傳送。
HTTPStatusEvent.HTTP_RESPONSE_STATUS
常數會定義 httpResponseStatus
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
responseURL | 傳回回應的 URL。 |
responseHeaders | 回應所傳回 (做為 URLRequestHeader 物件的陣列) 的回應檔頭。 |
status | 伺服器傳回的 HTTP 狀態碼。 |
redirected | 回應是否為重新導向的結果。 |
target | 接收 HTTP 狀態碼的網路物件。 |
相關 API 元素
httpStatus | 事件 |
flash.events.HTTPStatusEvent
屬性 HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_STATUS
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
當 URLLoader.load() 呼叫嘗試透過 HTTP 存取資料時傳送。針對 Flash Player 中執行的內容,只有在目前的 Flash Player 環境能夠偵測並傳回要求的狀態碼時,才會傳送這個事件。(某些瀏覽器環境可能無法提供這項資訊)。 請注意,httpStatus
事件 (如果有的話) 會在 (另外) 任何 complete
或 error
事件之前傳送。
HTTPStatusEvent.HTTP_STATUS
常數會定義 httpStatus
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
status | 伺服器傳回的 HTTP 狀態碼。 |
target | 接收 HTTP 狀態碼的網路物件。 |
相關 API 元素
ioError | 事件 |
flash.events.IOErrorEvent
屬性 IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在 URLLoader.load() 的呼叫產生終止下載的嚴重錯誤時傳送。
定義ioError
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
errorID | 與特定錯誤相關聯的參考號碼 (僅限 AIR)。 |
target | 遭遇輸入/輸出錯誤的網路物件。 |
text | 要顯示為錯誤訊息的文字。 |
相關 API 元素
open | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.OPEN
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會在呼叫 URLLoader.load()
方法後開始進行下載作業時傳送。
Event.OPEN
常數會定義 open
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 已開啟連線的網路物件。 |
相關 API 元素
progress | 事件 |
flash.events.ProgressEvent
屬性 ProgressEvent.type =
flash.events.ProgressEvent.PROGRESS
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在下載作業進行中收到資料時傳送。
請注意,使用 URLLoader 物件時,要等到完全接收資料之後,才能存取資料。 因此,進度事件只能做為目前下載進度的通知。 若要在完整下載前存取資料,請使用 AVURLStream 物件。
定義progress
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
bytesLoaded | 在偵聽程式處理事件時,載入的項目或位元組數目。 |
bytesTotal | 如果載入程序成功時,最終將載入的項目或位元組總數。 |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 回報進度的物件。 |
相關 API 元素
securityError | 事件 |
flash.events.SecurityErrorEvent
屬性 SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
當 URLLoader.load() 的呼叫嘗試從安全執行程序以外的伺服器載入資料時傳送。也會在 URLLoader.load()
呼叫嘗試載入 SWZ 檔且憑證無效或摘要字串與組件不符時傳送。
SecurityErrorEvent.SECURITY_ERROR
常數會定義 securityError
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 回報安全性錯誤的網路物件。 |
text | 要顯示為錯誤訊息的文字。 |
相關 API 元素
Tue Jun 12 2018, 03:47 PM Z