套件 | air.desktop |
類別 | public class URLFilePromise |
繼承 | URLFilePromise EventDispatcher Object |
實作 | IFilePromise |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
URLFilePromise 類別會使用 URLStream 和 URLRequest 物件做為資料來源,實作 IFilePromise 介面。這種實作可以為那些使用 HTTP 便能擷取的檔案,或 URLStream 類別支援的其他通訊協定,提供拖放支援。
若要建立 URL 檔案承諾:
- 建構以及初始化一或多個 URLFilePromise 物件。
- 將 URLFilePromise 物件新增至陣列中。
- 使用 ClipboardFormat (
FILE_PROMISE_LIST
),將陣列新增至新的 Clipboard 物件。 - 在回應使用者手勢時,呼叫 NativeDragManager
startDrag()
方法,傳送內含檔案承諾陣列的 Clipboard 物件中。
當使用者完成拖曳作業,執行階段會為每一個檔案承諾下載資料。資料是從 URLFilePromise 物件的 request
屬性指定的 URL 進行存取,然後儲存至 relativePath
屬性指定的檔案中。儲存檔案的位置會相對於放置位置。因此,如果相對位置是 foo/bar.txt
,並且將檔案承諾放置到稱為 home
的目錄中,則建立檔案的位置為:home/foo/bar.txt
。發生錯誤時,不會建立檔案。
若要支援無法透過 URLStream 類別存取的資料來源,可以實作 IFilePromise 介面。
注意:AIR 執行階段會自動呼叫 IFilePromise 方法、open()
、close()
以及 reportError()
。您的應用程式邏輯絕對不應該呼叫這些方法。同樣地,此 URLFilePromise 物件傳送的 open
、progress
、complete
以及 close
事件,主要是用於除錯之目的。您的應用程式不需要回應這些事件。
此類別已包含在 aircore.swc 檔案中。Adobe® Flash™ Builder 會在您建立 Adobe® AIR™ 的專案時,自動載入這個類別。Adobe® Flex™ SDK 也會包含此 aircore.swc 檔案,如果您使用 Flex SDK,則編譯應用程式時就應該包含此檔案。
若要在 Adobe® Flash® Professional (CS4 或更新的版本) 中使用 air.desktop 套件:
- 選取「檔案 > 發佈設定」命令。
- 在 Flash 面板中,按一下 ActionScript 3.0 的「設定」按鈕,然後選取「元件庫路徑」。
- 按一下「瀏覽至 SWC 檔案」按鈕。瀏覽至 Adobe Flash Professional 安裝資料夾中的 Adobe Flash CSn/AIKn.n/frameworks/libs/air/aircore.swc 檔案。
- 按一下「確定」按鈕。
- 將下列
import
陳述式加入您的 ActionScript 3.0 程式碼:import air.desktop.*;
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
isAsync : Boolean [唯讀]
指出是否可以非同步取得資源資料。 | URLFilePromise | ||
relativePath : String
建立的檔案相對於放置目的地的路徑和檔案名稱。 | URLFilePromise | ||
request : URLRequest
URLRequest 會確認哪些資源會被複製,做為拖放作業的結果。 | URLFilePromise |
方法 | 定義自 | ||
---|---|---|---|
建立 URLFilePromise 物件。 | URLFilePromise | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。 | EventDispatcher | ||
允許 AIR 執行階段在拖放作業時,於適當的時間關閉資料來源。 | URLFilePromise | ||
會將事件傳送到事件流程。 | EventDispatcher | ||
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。 | EventDispatcher | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
允許 AIR 執行階段在拖放作業時,於適當的時間開啟資料來源。 | URLFilePromise | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
會從 EventDispatcher 物件移除偵聽程式。 | EventDispatcher | ||
允許 AIR 執行階段報告拖放作業操作時發生的錯誤。 | URLFilePromise | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object | ||
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。 | EventDispatcher |
事件 | 摘要 | 定義自 | ||
---|---|---|---|---|
[廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。 | EventDispatcher | |||
在檔案的資料已經完全下載時傳送。 | URLFilePromise | |||
[廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。 | EventDispatcher | |||
為 HTTP 要求來傳送,以便報告回應檔頭。 | URLFilePromise | |||
為 HTTP 要求來傳送,以便報告要求狀態碼。 | URLFilePromise | |||
當 IOError 禁止下載檔案時傳送。 | URLFilePromise | |||
在相關的 URLStream 連線開啟後傳送。 | URLFilePromise | |||
在相關 URLStream 有可以讀取的資料區塊時傳送。 | URLFilePromise | |||
當發生安全錯誤造成檔案無法下載時傳送。 | URLFilePromise |
isAsync | 屬性 |
relativePath | 屬性 |
request | 屬性 |
request:URLRequest
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
URLRequest 會確認哪些資源會被複製,做為拖放作業的結果。
實作
public function get request():URLRequest
public function set request(value:URLRequest):void
URLFilePromise | () | 建構函式 |
public function URLFilePromise()
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
建立 URLFilePromise 物件。
使用此 URLFilePromise 物件之前,您必須設定 request
和 relativePath
屬性。
close | () | 方法 |
public function close():void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
允許 AIR 執行階段在拖放作業時,於適當的時間關閉資料來源。
請不要在應用程式邏輯中呼叫此函數。
open | () | 方法 |
public function open():IDataInput
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
允許 AIR 執行階段在拖放作業時,於適當的時間開啟資料來源。
請不要在應用程式邏輯中呼叫此函數。
傳回值IDataInput |
reportError | () | 方法 |
public function reportError(e:ErrorEvent):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
允許 AIR 執行階段報告拖放作業操作時發生的錯誤。
URLFilePromise 物件會重新傳送任何報告的錯誤事件。請不要在應用程式邏輯中呼叫此函數。
參數
e:ErrorEvent |
complete | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.COMPLETE
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
在檔案的資料已經完全下載時傳送。
注意:AIR 執行階段會使用此事件來管理非同步資料擷取處理程序。一般情況下,您的應用程式不必採取任何動作去回應此事件。
Event.COMPLETE
常數會定義 complete
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 已完成載入的網路物件。 |
httpResponseStatus | 事件 |
flash.events.HTTPStatusEvent
屬性 HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
為 HTTP 要求來傳送,以便報告回應檔頭。
與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 狀態碼的網路物件。 |
httpStatus | 事件 |
flash.events.HTTPStatusEvent
屬性 HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_STATUS
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
為 HTTP 要求來傳送,以便報告要求狀態碼。
HTTPStatusEvent.HTTP_STATUS
常數會定義 httpStatus
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
status | 伺服器傳回的 HTTP 狀態碼。 |
target | 接收 HTTP 狀態碼的網路物件。 |
ioError | 事件 |
flash.events.IOErrorEvent
屬性 IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
當 IOError 禁止下載檔案時傳送。
定義ioError
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
errorID | 與特定錯誤相關聯的參考號碼 (僅限 AIR)。 |
target | 遭遇輸入/輸出錯誤的網路物件。 |
text | 要顯示為錯誤訊息的文字。 |
open | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.OPEN
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
在相關的 URLStream 連線開啟後傳送。
注意:AIR 執行階段會使用此事件來管理非同步資料擷取處理程序。一般情況下,您的應用程式不必採取任何動作去回應此事件。
Event.OPEN
常數會定義 open
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 已開啟連線的網路物件。 |
progress | 事件 |
flash.events.ProgressEvent
屬性 ProgressEvent.type =
flash.events.ProgressEvent.PROGRESS
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
在相關 URLStream 有可以讀取的資料區塊時傳送。
注意:AIR 執行階段會使用此事件來管理非同步資料擷取處理程序。一般情況下,您的應用程式不必採取任何動作去回應此事件。
定義progress
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
bytesLoaded | 在偵聽程式處理事件時,載入的項目或位元組數目。 |
bytesTotal | 如果載入程序成功時,最終將載入的項目或位元組總數。 |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 回報進度的物件。 |
securityError | 事件 |
flash.events.SecurityErrorEvent
屬性 SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.0 |
當發生安全錯誤造成檔案無法下載時傳送。
SecurityErrorEvent.SECURITY_ERROR
常數會定義 securityError
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 回報安全性錯誤的網路物件。 |
text | 要顯示為錯誤訊息的文字。 |
Tue Jun 12 2018, 03:47 PM Z