適用於 Adobe® Flash® Platform 的 ActionScript® 3.0 參考
首頁  |  隱藏套件和類別清單 |  套件  |  類別  |  新增內容  |  索引  |  附錄  |  為什麼顯示英文?
篩選: 從伺服器擷取資料...
從伺服器擷取資料...
fl.managers 

FocusManager  - AS3 Flash

套件fl.managers
類別public class FocusManager
繼承FocusManager Inheritance Object
實作 IFocusManager

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

FocusManager 類別會針對利用滑鼠或鍵盤依循定位鍵迴圈來瀏覽的組件集合,管理其焦點。

定位鍵迴圈通常是使用定位鍵來進行瀏覽。焦點會依照定位鍵迴圈,以循環的模式在組件之間移動,從成為焦點的第一個組件到最後一個,然後再回到第一個。 定位鍵迴圈會將所有的組件和啟用定位鍵的組件包含在容器中。 一個應用程式可以包含許多定位鍵迴圈。

FocusManager 實體負責管理單一定位鍵迴圈。儘管主應用程式必定與至少一個 FocusManager 實體有關聯,但應用程式還是會使用不同的 FocusManager 實體來管理它所包含的每個定位鍵迴圈。 如果應用程式包含快顯視窗 (例如,分別包含組件的一個或多個定位鍵迴圈),則可能還需要其他的 FocusManager 實體。

所有可由 FocusManager 實體管理的組件都必須實作 fl.managers.IFocusManagerComponent 介面。 如果物件的焦點是由 Flash Player 管理,就不需要實作 IFocusManagerComponent 介面。

FocusManager 類別也會管理實作預設按鈕的方式。 在表單上按下 Enter 鍵時,預設按鈕會根據焦點當時所在的位置傳送 click 事件。 如果文字區域成為焦點,或者正在組件中 (例如,在 ComboBox 或 NumericStepper 組件中) 編輯某個值,則預設按鈕不會傳送 click 事件。

檢視範例

相關 API 元素



公用屬性
 屬性定義自
 Inheritedconstructor : Object
類別物件的參照或是特定物件實體的建構函數。
Object
  defaultButton : Button
會取得或設定目前的預設按鈕。
FocusManager
  defaultButtonEnabled : Boolean
取得或設定值,指出是否已啟用預設按鈕。
FocusManager
  form : DisplayObjectContainer
IFocusManager 的基底 DisplayObjectContainer,通常是舞台。
FocusManager
  nextTabIndex : int
[唯讀] 會取得要在此定位鍵迴圈中使用的下一個唯一定位鍵索引。
FocusManager
  showFocusIndicator : Boolean
取得或設定值,指出是否要以視覺化焦點指示器來標示成為焦點的組件。
FocusManager
公用方法
 方法定義自
  
建立新的 FocusManager 實體。
FocusManager
  
會啟動 FocusManager 實體。
FocusManager
  
會停用 FocusManager。
FocusManager
  
會擷取包含指定物件的互動式物件 (如果有的話)。
FocusManager
  
會取得目前成為焦點的互動式物件。
FocusManager
  
會擷取互動式物件,它會在使用者按下 Tab 鍵瀏覽至下一個物件時接收焦點。
FocusManager
 Inherited
指出物件是否有已定義的指定屬性。
Object
  
會將 showFocusIndicator 值設定為 false,並從取得焦點的物件 (如果有的話) 移除視覺化焦點指示器。
FocusManager
 Inherited
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。
Object
 Inherited
指出指定的屬性是否存在,以及是否可列舉。
Object
  
會將焦點設定為 IFocusManagerComponent 組件。
FocusManager
 Inherited
為迴圈作業設定動態屬性的可用性。
Object
  
會將 showFocusIndicator 值設定為 true,並在取得焦點的物件 (如果有的話) 上繪製視覺化焦點指示器。
FocusManager
 Inherited
傳回代表此物件的字串,根據地區特定慣例進行格式化。
Object
 Inherited
會傳回指定之物件的字串形式。
Object
 Inherited
會傳回指定之物件的基本值。
Object
屬性詳細資訊

defaultButton

屬性
defaultButton:Button

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

會取得或設定目前的預設按鈕。

預設按鈕是表單上的按鈕,它會在按下 Enter 鍵時,根據焦點當時所在的位置傳送 click 事件。



實作
    public function get defaultButton():Button
    public function set defaultButton(value:Button):void

defaultButtonEnabled

屬性 
defaultButtonEnabled:Boolean

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

取得或設定值,指出是否已啟用預設按鈕。 如果將這個值設定為 true,並在非 Button 組件的組件具有焦點時按下 Enter 鍵,焦點管理員便會監視 Enter 鍵,並且在預設按鈕上傳送 click 事件。 如果將這個值設定為 false,則焦點管理員不會監視 Enter 鍵。 使用 Enter 鍵的組件會將此屬性設定為 false,避免當使用者按下 Enter 鍵時在預設按鈕 (如果有的話) 上傳送 click 事件。



實作
    public function get defaultButtonEnabled():Boolean
    public function set defaultButtonEnabled(value:Boolean):void

form

屬性 
form:DisplayObjectContainer

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9.0.28.0

IFocusManager 的基底 DisplayObjectContainer,通常是舞台。



實作
    public function get form():DisplayObjectContainer
    public function set form(value:DisplayObjectContainer):void

nextTabIndex

屬性 
nextTabIndex:int  [唯讀]

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

會取得要在此定位鍵迴圈中使用的下一個唯一定位鍵索引。



實作
    public function get nextTabIndex():int

showFocusIndicator

屬性 
showFocusIndicator:Boolean

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

取得或設定值,指出是否要以視覺化焦點指示器來標示成為焦點的組件。



實作
    public function get showFocusIndicator():Boolean
    public function set showFocusIndicator(value:Boolean):void
建構函式詳細資料

FocusManager

()建構函式
public function FocusManager(container:DisplayObjectContainer)

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

建立新的 FocusManager 實體。

焦點管理員會管理 DisplayObjectContainer 物件之子系內的焦點。

參數
container:DisplayObjectContainer — DisplayObjectContainer,其中裝載焦點管理員或 stage
方法詳細資訊

activate

()方法
public function activate():void

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

會啟動 FocusManager 實體。

FocusManager 實體會加入讓它監視焦點相關之鍵盤和滑鼠活動的事件處理常式。

deactivate

()方法 
public function deactivate():void

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

會停用 FocusManager。

FocusManager 會移除它用來監視與焦點相關之鍵盤及滑鼠活動的事件處理常式。

findFocusManagerComponent

()方法 
public function findFocusManagerComponent(component:InteractiveObject):InteractiveObject

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

會擷取包含指定物件的互動式物件 (如果有的話)。 播放程式可以將焦點設定為 Flash 組件的子組件。此方法會從組件的觀點來判斷哪個互動式物件成為焦點。

參數

component:InteractiveObject — 可以具有播放程式層級焦點的物件。

傳回值
InteractiveObject — 包含 component 的物件;如果找不到此物件,即為 component 本身。

getFocus

()方法 
public function getFocus():InteractiveObject

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

會取得目前成為焦點的互動式物件。 Adobe 建議您呼叫此方法 (而非使用 Stage 物件),因為它會指出哪個組件成為焦點。 Stage 可能會傳回該組件中的子組件。

傳回值
InteractiveObject — 目前成為焦點的互動式物件。

getNextFocusManagerComponent

()方法 
public function getNextFocusManagerComponent(backward:Boolean = false):InteractiveObject

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

會擷取互動式物件,它會在使用者按下 Tab 鍵瀏覽至下一個物件時接收焦點。 如果應用程式沒有其他有效的物件,此方法會擷取目前成為焦點的物件。

參數

backward:Boolean (default = false) — 如果將此參數設定為 true,則焦點會以倒退方向移動,使得此方法在按下 Shift+Tab 鍵組合之後,擷取下一個接收焦點的物件。

傳回值
InteractiveObject — 緊接著要接收焦點的組件。

hideFocus

()方法 
public function hideFocus():void

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

會將 showFocusIndicator 值設定為 false,並從取得焦點的物件 (如果有的話) 移除視覺化焦點指示器。

setFocus

()方法 
public function setFocus(component:InteractiveObject):void

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

會將焦點設定為 IFocusManagerComponent 組件。 此方法不會檢查組件的可見性、啟用狀態或其他條件。

參數

component:InteractiveObject — 可以接收焦點的物件。

showFocus

()方法 
public function showFocus():void

語言版本: ActionScript 3.0
產品版本: Flash CS3
執行階段版本: Flash Player 9.0.28.0, AIR 1.0

會將 showFocusIndicator 值設定為 true,並在取得焦點的物件 (如果有的話) 上繪製視覺化焦點指示器。

FocusManagerExample.as

此範例將示範如何使用 FocusManager 類別,變更「舞台」上組件之間的焦點:

若要執行範例,請遵循下列步驟:

  1. 將 TextInput 組件加入元件庫。
  2. 將此程式碼另存為 FocusManagerExample.as,與 FLA 檔放在同一個目錄中。
  3. 將 FLA 檔中的 Document 類別設定為 FocusManagerExample。
package
{
    import fl.controls.TextInput;
    import fl.managers.FocusManager;
    import flash.display.InteractiveObject;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.utils.Timer;

    public class FocusManagerExample extends Sprite 
    {
        private var fm:FocusManager;
        
        public function FocusManagerExample() {
            buildGridOfTextInputs();

            fm = new FocusManager(this);
            var t:Timer = new Timer(1000);
            t.addEventListener(TimerEvent.TIMER,secondPassed);
            t.start();
        }
        private function buildGridOfTextInputs():void {
            var rowSpacing:uint = 30;
            var colSpacing:uint = 110;
            var totalRows:uint = 4;
            var totalCols:uint = 3;
            var i:uint;
            
            for(i = 0; i < totalRows * totalCols; i++) {
                var ti:TextInput = new TextInput()
                ti.name = "component"+i.toString();
                ti.addEventListener(FocusEvent.FOCUS_IN,focusChange);
                ti.setSize(100,20);
                ti.x = 10 + ((i % totalCols) * colSpacing);
                ti.y = 10 + (Math.floor(i / totalCols) * rowSpacing);
                ti.tabEnabled = true;
                addChild(ti);
            }
        }
        private function secondPassed(e:TimerEvent):void {
            var nextComponent:InteractiveObject = fm.getNextFocusManagerComponent();
            fm.setFocus(nextComponent);    
        }
        
        private function focusChange(e:FocusEvent):void {
            trace("Focus change: " + e.target.name);
        }
    }
}




[ X ]為什麼顯示英文?
「ActionScript 3.0 參考」的內容是以英文顯示

並非所有「ActionScript 3.0 參考」的內容都翻譯為所有語言。當語言元素未翻譯時,就會以英文顯示。例如,ga.controls.HelpBox 類別並沒有翻譯為任何語言。因此在參考的繁體中文版本中,ga.controls.HelpBox 類別就會以英文顯示。