使用外部 API 的基本概念
Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本
雖然在某些情況下 SWF 檔可以獨立執行 (例如,若您使用 Adobe® Flash® Professional 建立 SWF 放映檔時),但是在大部分情況下,SWF 應用程式必須當做另一個應用程式內部的元素來執行。一般來說,內含 SWF 的容器會是一個 HTML 檔;在某些比較少見的情況中,SWF 檔則是當做桌面應用程式的全部或部分使用者介面來使用。
隨著您所使用的應用程式越來越進階,就會越需要在 SWF 檔與容器應用程式之間建立通訊模式。例如,讓 HTML 網頁顯示文字或其它資訊,並加入 SWF 檔以顯示圖表或視訊之類的動態視覺內容,都已經是很普遍的作法。在這種情況下,您可能會希望讓使用者按下網頁上按鈕,就能變更 SWF 檔中的某些部分。ActionScript 包含了一種稱為外部 API 的機制,可在 SWF 檔的 ActionScript 與容器應用程式的其它程式碼之間協助建立起這種通訊類型。
重要概念與術語
下列參考清單包含了與此功能相關的重要術語:
-
容器應用程式
-
Flash Player 執行諸如網頁和 HTML 頁面等 SWF 檔案所在的應用程式,其中包含 Flash Player 內容或可在網頁中載入 SWF 的 AIR 應用程式。
-
放映檔
-
包含 SWF 內容與 Flash Player 內嵌版本的可執行檔。您可使用 Flash Professional 或獨立 Flash Player 建立放映檔。我們通常會在光碟中加上放映檔來散發 SWF 檔;或是當下載檔案大小不成問題,而 SWF 作者希望確定使用者不管其電腦是否已經安裝了 Flash Player,都能執行 SWF 檔時,就會使用放映檔。
-
Proxy
-
媒介應用程式或程式碼,可用來代替某個應用程式 (「呼叫端應用程式」) 呼叫另一個應用程式 (「外部應用程式」) 中的程式碼,而且會將值傳回呼叫端應用程式。下列是您應該使用 Proxy 的幾項理由:
-
序列化
-
將物件或資料值轉換為可在兩種程式設計系統 (例如在網際網路中,或單一電腦上執行的兩種不同的應用程式) 的訊息之間傳遞值的特定格式。
逐步執行範例
這裡所提供的許多程式碼範例都是一小段的程式碼,僅供示範之用,並不是檢查數值的完整實用範例或程式碼。由於使用外部 API 需要 (依定義) 撰寫 ActionScript 程式碼以及容器應用程式中的程式碼,因此測試範例的步驟會包括建立容器 (例如,包含 SWF 檔的網頁) 和使用列出的程式碼與容器進行互動。
若要測試 ActionScript 與 JavaScript 通訊的範例:
-
使用 Flash Professional 編寫新文件,然後在電腦中儲存此文件。
-
從主選單中選擇「檔案 > 發佈設定」。
-
在「發佈設定」對話方塊中,確認「格式」索引標籤上只選取了「HTML」和「Flash」核取方塊。
-
按一下「發佈」按鈕。這樣便會在同一個檔案夾中產生 SWF 檔和 HTML 檔,它們的名稱和您用來儲存文件的名稱相同。按一下「確定」,關閉「發佈設定」對話方塊。
-
取消選取 HTML 核取方塊。現在既然產生了 HTML 網頁,便可以著手修改它,加入適當的 JavaScript 程式碼。取消選取 HTML 核取方塊可以確保修改 HTML 網頁之後,Flash 不會在發佈 SWF 檔時,以新的 HTML 網頁覆寫您的變更。
-
按一下「確定」,關閉「發佈設定」對話方塊。
-
使用 HTML 或文字編輯應用程式,開啟 Flash 在發佈 SWF 檔時所建立的 HTML 檔案。在 HTML 原始碼中,加入開頭和結束
script
標籤,然後從列出的程式碼範例中,將 JavaScript 程式碼複製到這兩個標籤之間。
<script>
// add the sample JavaScript code here
</script>
-
儲存 HTML 檔並返回 Flash。
-
在「時間軸」的「影格 1」上選取關鍵影格,並開啟「動作」面板。
-
將列出的 ActionScript 程式碼複製到「Script」窗格中。
-
從主選單中選擇「檔案 > 發佈」,以您所做的變更來更新 SWF 檔。
-
使用網頁瀏覽器,開啟您所編輯的 HTML 網頁加以檢視,並測試 ActionScript 與此 HTML 網頁之間的通訊。
若要測試 ActionScript 與 ActiveX 容器通訊的範例:
-
使用 Flash Professional 編寫新文件,然後在電腦中儲存此文件。您可能想要將它儲存在容器應用程式預期可找到 SWF 檔的檔案夾中。
-
從主選單中選擇「檔案 > 發佈設定」。
-
在「發佈設定」對話方塊中,確認「格式」索引標籤上只選取了「Flash」核取方塊。
-
在「Flash」核取方塊旁的「檔案」欄位中,按一下檔案夾圖示以選取 SWF 檔的發佈目的地檔案夾。藉由設定 SWF 檔的位置,您可以 (舉例來說) 將文件保留在某個資料夾中,而將已發佈的 SWF 檔放在另一個資料夾,例如包含容器應用程式原始碼的資料夾。
-
在「時間軸」的「影格 1」上選取關鍵影格,並開啟「動作」面板。
-
將範例的 ActionScript 程式碼複製到「Script」窗格中。
-
從主選單中選擇「檔案 > 發佈」以重新發佈 SWF 檔。
-
建立並執行容器應用程式,以測試 ActionScript 與容器應用程式之間的通訊。
如需使用外部 API 與 HTML 頁面進行通訊的完整範例,請參閱下列主題:
這些範例包含完整的程式碼 (包括 ActionScript 和容器錯誤檢查程式碼),您在使用外部 API 撰寫程式碼時應該使用這些程式碼。如需其它使用外部 API 的完整範例,請參閱「Adobe® Flash® Professional CS5 的 ActionScript® 3.0 參考」中的 ExternalInterface 類別範例。
|
|
|