組件的架構

只有 Adobe® Flash Player 9.0.28.0 版和更新版本才能支援 Adobe® ActionScript® 3.0 組件。這些組件與使用 Flash CS4 之前版本所建立的組件不相容。如需有關使用 Adobe® ActionScript® 2.0 組件的詳細資訊,請參閱「使用 Adobe® ActionScript® 2.0 組件」和「Adobe® ActionScript® 2.0 組件語言參考」。

Adobe ActionScript 3.0 使用者介面 (UI) 組件的執行方式和 FLA 架構的組件一樣,但 Flash CS5 同時支援 SWC 和 FLA 架構的組件。例如,FLVPlayback 和 FLVPlaybackCaptioning 組件就是屬於 SWC 架構的組件。您可以將其中一種組件類型放入「Components」資料夾,讓它出現在「組件」面板中。這兩種組件類型的建立方式各有不同,因此在本章中將會分別說明這兩種組件。

ActionScript 3.0 FLA 架構的組件

ActionScript 3.0 的「User Interface」組件是屬於 FLA 架構 (.fla) 的檔案,您可以按兩下「舞台」上的組件,存取其內建外觀元素進行編輯。組件的外觀元素和其它資源都位於「時間軸」的「影格 2」上。當您按兩下組件時,Flash 會自動跳到「影格 2」並開啟組件之外觀元素的面板。下圖顯示的面板具有會顯示 Button 組件的外觀元素。

Button 組件的外觀元素

如需有關組件外觀元素和自訂組件的詳細資訊,請參閱 自訂使用者介面組件 自訂 FLVPlayback 組件

為了加快應用程式的編譯速度並避免與 ActionScript 3.0 設定產生衝突,Flash CS5 FLA 架構的 UI 組件中也含有一個 SWC,其中包含組件的已編譯 ActionScript 程式碼。ComponentShim SWC 是置於「舞台」上「影格 2」的每個「User Interface」組件中,如此才可以使用預先編譯的定義。組件必須位於「舞台」上或在元件庫中,而且已在其「連結」屬性中選取「匯出在第一個影格」選項後,才可以使用 ActionScript。如果要使用 ActionScript 建立組件,還必須使用 import 陳述式匯入類別才能存取它。如需有關 import 陳述式的詳細資訊,請參閱 適用於 Adobe Flash Platform 的 ActionScript 3.0 參考

SWC 架構的組件

SWC 架構的組件也含有 FLA 檔和 ActionScript 類別檔,但已編譯並匯出為 SWC。SWC 檔案是一組預先編譯的 Flash 元件和 ActionScript 程式碼套件,讓您不必重新編譯不會再變更的元件和程式碼。

FLVPlayback 和 FLVPlaybackCaptioning 組件就是屬於 SWC 架構的組件。它們是使用外部 (非內建) 的外觀元素。您可以變更 FLVPlayback 組件預設的外觀元素,方式是從預先設計的外觀元素集合中選取、自訂「組件」面板中的 UI 控制項 (BackButton、BufferingBar 等等) 或建立自訂的外觀元素。如需詳細資訊,請參閱 自訂 FLVPlayback 組件

在 Flash 中,您可以將影片片段轉換成已編譯的片段,如下列步驟所示:

編譯影片片段

  • 在「元件庫」面板中的影片片段上按一下右鍵 (Windows),或 Control+按一下 (Macintosh),然後選取「轉換成編譯的影片」。

    編譯後的影片片段和編譯前的影片片段具有相同的行為模式,不過編譯後的影片片段的顯示和發佈速度比一般影片片段要快許多。編譯後的影片片段不能再進行編輯,不過它們的屬性會出現在「屬性」檢測器和「組件檢測器」中。

    SWC 組件包含已編譯的影片片段、組件的預先編譯 ActionScript 定義和其它用來描述組件的檔案。如果是建立自己的組件,您可以將它匯出成 SWC 檔案後再發佈。

匯出 SWC 檔案

  • 選取「元件庫」面板中的影片片段,並按一下右鍵 (Windows),或是 Control+按一下 (Macintosh) 影片片段,然後選取「匯出 SWC 檔案」。

    備註: Flash CS4 或更新版本 SWC 檔案的格式與 Flex SWC 格式相容,因此可以在這兩種產品間交換 SWC 檔案 (可能需要先修改)。

如需建立 SWC 架構之組件的詳細資訊,請參閱 www.adobe.com/go/learn_fl_creating_components_tw

ActionScript 3.0 組件 API

每一個 ActionScript 3.0 組件都是建立在 ActionScript 3.0 類別上,位於套件資料夾且名稱的格式為 fl. packagename . classname 。例如,Button 組件是 Button 類別的實體而套件名稱是 fl.controls.Button 。在應用程式中匯入組件類別時必須參考套件名稱。您可以使用下列陳述式匯入 Button 類別:

import fl.controls.Button;

如需有關組件類別檔案位置的詳細資訊,請參閱 使用組件檔案

組件的類別定義了方法、屬性、事件和樣式,可以讓您在應用程式中與它進行互動。ActionScript 3.0 UI 組件是 Sprite 和 UIComponent 類別的子類別,而且繼承了它們的屬性、方法和事件。Sprite 類別是基本的顯示清單建構區塊,它類似於 MovieClip 但不使用時間軸。UIComponent 類別是所有互動式和非互動式視覺組件的基底類別。 適用於 Adobe Flash Platform 的 ActionScript 3.0 參考 中說明了每個組件的繼承路徑,以及其屬性、方法、事件和樣式。

所有的 ActionScript 3.0 組件都是使用 ActionScript 3.0 事件處理模型。如需有關事件處理的詳細資訊,請參閱 處理事件 以及「ActionScript 3.0 程式設計」。