外部 API 需求與優點Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本 外部 API 屬於 ActionScript 的一部分,可提供一項機制讓 ActionScript 與在「外部應用程式」中執行的程式碼進行通訊,這個外部應用程式也就是 Flash Player 的容器 (通常是網頁瀏覽器或獨立的放映檔應用程式)。在 ActionScript 3.0 中,是由 ExternalInterface 類別提供外部 API 的功能;而在 Flash Player 8 之前的 Flash Player 版本中,則是由 fscommand() 動作與容器應用程式進行通訊。ExternalInterface 類別取代了 fscommand()。 備註: 如果您需要使用舊版的 fscommand() 函數 (例如,為了維持與早期應用程式的相容性,或是與第三方 SWF 容器應用程式或獨立的 Flash Player 維持互動),您仍然可以在 flash.system 套件中找到這個套件等級函數。
ExternalInterface 類別是一個子系統,可以讓 ActionScript 及 Flash Player 與 HTML 網頁中的 JavaScript,或是與任何內含 Flash Player 實體的桌面應用程式之間,更容易進行通訊。 ExternalInterface 類別僅在下列情況下才能使用:
在其它情況下 (例如在獨立的播放程式中執行時),ExternalInterface.available 屬性就會傳回 false。 您可以從 ActionScript 呼叫 HTML 網頁上的 JavaScript 函數。和 fscommand() 相比,外部 API 可提供下列更完備的功能:
重要事項: 如果 HTML 網頁中指定的 Flash Player 實體名稱 (object 標籤的 id 特質) 含有連字符號 (-) 或其它已在 JavaScript 中定義為運算子的字元 (例如 +、*、/、\、.等字元),當您在 Internet Explorer 中檢視容器網頁時,使用 ActionScript 進行的 ExternalInterface 呼叫將無法運作。此外,如果定義 Flash Player 實體的 HTML 標籤 (object 和 embed 標籤) 是在 HTML form 標籤的巢狀架構內,使用 ActionScript 進行的 ExternalInterface 呼叫也無法運作。
|
|