使用 Button 組件

此Button 組件是可調整大小的矩形按鈕,使用者可以透過滑鼠或空白鍵按下此按鈕,啟動應用程式中的動作。您可以將自訂的圖示增加到 Button,也可以將 Button 的行為從按下方式變更為切換方式。切換 Button 會在按一下時保持按下狀態,再按一下時又會回復一般狀態。

Button 是許多表單與網路應用程式的基本項目。如果希望使用者觸發某個事件,您就可以使用按鈕。例如,大部分表單都有「送出」按鈕。您也可以在簡報中增加「上一張」和「下一張」按鈕。

與 Button 組件的使用者互動

您可以在應用程式中啟用或停用按鈕。處於停用狀態的按鈕不接受滑鼠或鍵盤輸入。如果您按一下或用 Tab 鍵移到啟用的按鈕上,它就會成為焦點。當 Button 實體成為焦點時,您可以使用下列按鍵加以控制:

按鍵

說明

Shift+Tab

將焦點移到上一個物件。

空白鍵

按下或放開按鈕,並且觸發 click 事件。

Tab 鍵

將焦點移到下一個物件。

Enter/Return

如果按鈕設定為 FocusManager 的預設 Button,則會將焦點移至下一個物件。

如需有關控制焦點的詳細資訊,請參閱 Flash Professional 的 ActionScript 3.0 參考 中的「IFocusManager 介面」和「FocusManager 類別」,以及 使用 FocusManager

進行編寫時,每個 Button 實體的即時預覽會反映您在「屬性」檢測器或「組件檢測器」中對參數的變更。

備註: 如果圖示比按鈕大,就會延伸超出按鈕的邊框。

若要在應用程式中指定某個按鈕為預設按鈕 (也就是當使用者按下 Enter 鍵時,便會接收 click 事件的按鈕),請設定 FocusManager.defaultButton 。例如,下列程式碼會將預設按鈕設定為 Button 實體 submitButton

FocusManager.defaultButton = submitButton;

將 Button 組件加入應用程式時,您可以加入下列 ActionScript 程式碼,讓螢幕朗讀程式能夠存取此組件:

import fl.accessibility.ButtonAccImpl; 
 
ButtonAccImpl.enableAccessibility();

不論您為組件建立了多少個實體,都只需要啟用組件的輔助功能一次。

Button 組件參數

您可以在「屬性」檢測器 (「視窗 > 屬性 > 屬性」) 或「組件檢測器」(「視窗 > 組件檢測器」) 中,為每個 Button 實體: emphasized label labelPlacement selected toggle 。這些參數都具有相對應的 ActionScript 同名屬性。當您指定這些參數的值時,就是設定屬性在應用程式中的起始狀態。在 ActionScript 中設定屬性會覆寫您設定給參數的值。如需有關這些參數可能值的詳細資訊,請參閱 適用於 Adobe Flash Platform 的 ActionScript 3.0 參考 中的 Button 類別。

建立具有 Button 組件的應用程式

下列程序說明如何在編寫時將 Button 組件加入應用程式。在這個範例中,當您按一下 Button 時,就會變更 ColorPicker 組件的狀態。

  1. 建立新的 Flash (ActionScript 3.0) 文件。

  2. 將 Button 組件從「組件」面板拖曳到「舞台」,然後在「屬性」檢測器中為組件輸入下列值:

    • 輸入實體名稱 aButton

    • 輸入 Show 做為 label 參數的值。

  3. 在「舞台」上新增 ColorPicker,並賦予實體名稱 aCp

  4. 開啟「動作」面板,選取主要「時間軸」中的「影格 1」,然後輸入下列 ActionScript 程式碼:

    aCp.visible = false; 
     
    aButton.addEventListener(MouseEvent.CLICK, clickHandler); 
     
    function clickHandler(event:MouseEvent):void { 
         
        switch(event.currentTarget.label) { 
            case "Show": 
                aCp.visible = true; 
                aButton.label = "Disable"; 
                break; 
            case "Disable": 
                aCp.enabled = false; 
                aButton.label = "Enable"; 
                break; 
            case "Enable": 
                aCp.enabled = true; 
                aButton.label = "Hide"; 
                break; 
            case "Hide": 
                aCp.visible = false; 
                aButton.label = "Show"; 
                break; 
        } 
    }

    第二行程式碼會將 clickHandler() 函數註冊成為 MouseEvent.CLICK 事件的事件處理常式函數。當使用者按一下該 Button 時便會發生此事件,並導致 clickHandler() 函數根據 Button 的值採取下列其中一個動作:

    • Show 會讓 ColorPicker 變成可見狀態,並將 Button 的標籤變更為 Disable。

    • Disable 會停用 ColorPicker,並將 Button 的標籤變更為 Enable。

    • Enable 會啟用 ColorPicker,並將 Button 的標籤變更為 Hide。

    • Hide 會讓 ColorPicker 變成隱藏狀態,並將 Button 的標籤變更為 Show。

  5. 選取「控制 > 測試影片」,執行應用程式。

建立具有 Button 組件的應用程式

下列程序會使用 ActionScript 建立切換 Button,並且當您按一下此 Button 時,會在「輸出」面板中顯示事件類型。此範例會叫用類別的建構函式以建立 Button 實體,並透過呼叫 addChild() 方法將實體加入「舞台」。

  1. 建立新的 Flash (ActionScript 3.0) 文件。

  2. 將 Button 組件從「組件」面板拖曳到目前文件的「元件庫」面板。

    此舉會將組件加入元件庫中,但不會使其在應用程式中顯示。

  3. 開啟「動作」面板,選取主要「時間軸」中的「影格 1」,然後輸入下列程式碼以建立 Button 實體:

    import fl.controls.Button; 
     
    var aButton:Button = new Button(); 
    addChild(aButton); 
    aButton.label = "Click me"; 
    aButton.toggle =true;  
    aButton.move(50, 50);

    move() 方法會將該按鈕放置於「舞台」上 50 (x 座標), 50 (y 座標) 的位置。

  4. 接著,加入下列 ActionScript 以建立事件偵聽程式和事件處理常式函數:

    aButton.addEventListener(MouseEvent.CLICK, clickHandler); 
     
    function clickHandler(event:MouseEvent):void { 
        trace("Event type: " + event.type); 
    }
  5. 選取「控制 > 測試影片」。

    當您按一下按鈕時,Flash 會在「輸出」面板中顯示「Event type: click」訊息。