當使用者在 Flash 應用程式中按下 Tab 鍵進行瀏覽,或在應用程式中以滑鼠選擇時,FocusManager 類別會決定哪個組件將成為輸入焦點。除非您正在建立組件,否則就不需要將 FocusManager 實體加入應用程式中,或是撰寫任何程式碼來啟動 FocusManager。
           
           
            如果 RadioButton 物件成為焦點,FocusManager 會檢查該物件及所有具有相同
            
             groupName
            
            值的物件,並設定物件的焦點,將
            
             selected
            
            屬性設定為
            
             true
            
            。
           
           
            每個強制回應 Window 組件都含有 FocusManager 的實體,因此該視窗上的控制項會變成本身的 tab 集。如此便能防止使用者因為按下 Tab 鍵,不小心瀏覽到其它視窗中的組件。
           
           
            FocusManager 會使用容器中元素的深度階層 (或
            
             z
            
            順序) 做為預設的瀏覽配置或「定位鍵迴圈」。使用者通常使用 Tab 鍵來瀏覽定位鍵迴圈,將焦點從成為焦點的第一個組件移到最後一個組件,然後再回到第一個組件。深度階層的設定主要以組件拖曳到「舞台」的順序為準。不過,您也可以使用「修改 > 排列 > 移至最前面/移至最後面」命令來決定最後的
            
             z
            
            順序。如需深度階層的詳細資訊,請參閱
            
             使用顯示清單
            
            。
           
           
            您可以呼叫
            
             setFocus()
            
            方法,讓應用程式中的組件實體成為焦點。例如,下列範例會為目前的容器 (
            
             this
            
            ) 建立 FocusManager 實體,並讓 Button 實體
            
             aButton
            
            成為焦點。
           
           var fm:FocusManager = new FocusManager(this); 
fm.setFocus(aButton);
           
            您可以透過呼叫
            
             getFocus()
            
            方法判斷定位鍵迴圈中成為焦點的組件,也可以透過呼叫
            
             getNextFocusManagerComponent()
            
            方法判斷定位鍵迴圈中將成為焦點的下一個組件。在下列範例中,CheckBox、RadioButton 和 Button 位於「舞台」上,而且每個組件都有
            
             MouseEvent.CLICK
            
            和
            
             FocusEvent.MOUSE_FOCUS_CHANGE
            
            事件的偵聽程式。發生
            
             MouseEvent.CLICK
            
            事件時,由於使用者已按一下組件,因此
            
             showFocus()
            
            函數會呼叫
            
             getNextFocusManagerComponent()
            
            方法來判斷定位鍵迴圈中將成為焦點的下一個組件。接著,它會呼叫
            
             setFocus()
            
            方法,讓該組件成為焦點。發生
            
             FocusEvent.MOUSE_FOCUS_CHANGE
            
            事件時,
            
             fc()
            
            函數會顯示發生此事件的組件名稱。當使用者按一下定位鍵迴圈中的組件,而該組件並非下一個組件時,就會觸發這個事件。
           
           // This example assumes a CheckBox (aCh), a RadioButton (aRb) and a Button 
// (aButton) have been placed on the Stage. 
 
import fl.managers.FocusManager; 
import flash.display.InteractiveObject; 
 
var fm:FocusManager = new FocusManager(this); 
 
aCh.addEventListener(MouseEvent.CLICK, showFocus); 
aRb.addEventListener(MouseEvent.CLICK, showFocus); 
aButton.addEventListener(MouseEvent.CLICK, showFocus); 
aCh.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, fc); 
aRb.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, fc); 
aButton.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, fc); 
 
function showFocus(event:MouseEvent):void { 
    var nextComponent:InteractiveObject = fm.getNextFocusManagerComponent(); 
    trace("Next component in tab loop is: " + nextComponent.name); 
    fm.setFocus(nextComponent);  
} 
 
function fc(fe:FocusEvent):void { 
    trace("Focus Change: " + fe.target.name); 
}
           
            若要建立在使用者按下 Enter 鍵 (Windows) 或 Return 鍵 (Macintosh) 時成為焦點的按鈕,請將
            
             FocusManager.defaultButton
            
            屬性設定為想要設成預設 Button 的 Button 實體,如下列程式碼所示:
           
           import fl.managers.FocusManager; 
 
var fm:FocusManager = new FocusManager(this); 
fm.defaultButton = okButton;
           
            FocusManager 類別會覆寫預設的 Flash Player 焦點矩形,並繪製自訂的圓角焦點矩形。
           
           
            如需有關在 Flash 應用程式中建立焦點配置的詳細資訊,請參閱 Flash Professional 的
            
             ActionScript 3.0 參考
            
            中的
            
             FocusManager 類別
            
            。如果要建立自訂焦點管理員,您必須建立會實作
            
             IFocusManager
            
            介面的類別。如需詳細資訊,請參閱 Flash Professional 的
            
             ActionScript 3.0 參考
            
            中的
            
             IFocusManager
            
            。