パッケージmx.managers
public class FocusManager
継承FocusManager Inheritance Object
実装IFocusManager

FocusManager クラスは、マウスやキーボード (Tab キー) の操作に応じてコンポーネント上のフォーカスを管理します。1 つのアプリケーションには複数の FocusManager インスタンスが存在する場合があります。FocusManager のそれぞれのインスタンスが、"タブループ" を構成するコンポーネントのセットを管理します。Tab キーを何度も押すと、フォーカスがコンポーネントのセットを一巡し、最終的には最初にフォーカスが置かれていたコンポーネントに戻ります。これが "タブループ" と呼ばれるもので、FocusManager インスタンスがこのループを管理します。ポップアップウィンドウの "タブループ" が固有のコンポーネントのセットで構成されている場合、このポップアップウィンドウは固有の FocusManager インスタンスを持ちます。メインアプリケーションは常に FocusManager インスタンスを持っています。

FocusManager は、"コンポーネントレベル" からフォーカスを管理します。Flex では、コンポーネントの UITextField が、テキストのキーボード入力を可能にする唯一の方法となります。Flash Player にとって、フォーカスはこの UITextField にあります。一方 FocusManager から見ると、フォーカスは UITextField の親であるコンポーネントにあります。つまり、コンポーネントレベルと Flash Player レベルのフォーカスには違いがあります。アプリケーション開発者は一般的にコンポーネントレベル以外のフォーカスを扱う必要はありませんが、コンポーネント開発者は Flash Player レベルのフォーカスを理解していなければなりません。

FocusManager で管理できるすべてのコンポーネントは、mx.managers.IFocusManagerComponent を実装する必要がありますが、Flash Player レベルのフォーカスで管理されるオブジェクトではその必要はありません。

FocusManager では defaultButton の概念も管理します。これは、Enter キーが押されたときに、その時点でのフォーカスの位置に応じて click イベントを送出するフォーム上の Button オブジェクトです。



パブリックプロパティ
 プロパティ定義
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  defaultButton : IUIComponent
元のデフォルト Button コントロールへの参照です。
FocusManager
  defaultButtonEnabled : Boolean
FocusManager がデフォルトボタンをアクティブ化するときに Enter キーが押されていることをチェックするかどうかを示すフラグです。
FocusManager
  focusPane : Sprite
コンテナ間でフォーカスが移動されるときにコンテナ間で移動する単一の Sprite オブジェクトです。
FocusManager
  nextTabIndex : int
[read-only] このタブループで次に使用する固有のタブインデックス。
FocusManager
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  showFocusIndicator : Boolean
コンポーネントがフォーカスを持っていることを表すインジケータを表示するかどうかを示すフラグです。
FocusManager
パブリックメソッド
 メソッド定義
  FocusManager(container:IFocusManagerContainer, popup:Boolean = false)
コンストラクタ。
FocusManager
  activate():void
SystemManager は FocusManager をアクティブにし、複数の IFocusManagerContainer が同時に表示されると非アクティブにします。
FocusManager
  deactivate():void
SystemManager は FocusManager をアクティブにし、複数の IFocusManagerContainer が同時に表示されると非アクティブにします。
FocusManager
  findFocusManagerComponent(o:InteractiveObject):IFocusManagerComponent
指定されたオブジェクトが含まれている IFocusManagerComponent を返します (存在する場合)。
FocusManager
  getFocus():IFocusManagerComponent
現在フォーカスを持っている IFocusManagerComponent コンポーネントを取得します。
FocusManager
  getNextFocusManagerComponent(backward:Boolean = false):IFocusManagerComponent
ユーザーが Tab キーを押して別のコンポーネントにナビゲートすると、フォーカスを取得する IFocusManagerComponent を返します。
FocusManager
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
  hideFocus():void
showFocusIndicatorfalse に設定し、フォーカスがあるオブジェクト (存在する場合) から可視のフォーカスインジケータを削除します。
FocusManager
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
  setFocus(o:IFocusManagerComponent):void
フォーカスを IFocusManagerComponent コンポーネントに設定します。
FocusManager
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  showFocus():void
showFocusIndicatortrue に設定し、フォーカスがあるオブジェクト (存在する場合) に可視のフォーカスインジケータを描画します。
FocusManager
  toString():String
FocusManager オブジェクトをホストするコンポーネントのストリング表現を返します。このストリングの末尾には ".focusManager" というストリングが追加されます。
FocusManager
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
プロパティの詳細
defaultButtonプロパティ
defaultButton:IUIComponent  [read-write]

元のデフォルト Button コントロールへの参照です。任意の Button コントロールにフォーカスがあるときに Enter キーを押すと、マウスでクリックした場合と同様に、Button コントロールから click イベントが送出され、その Button コントロールがアクティブになります。実際のデフォルト Button コントロールは、フォーカスが別のコントロールに移ると変更されますが、フォーカスがボタンにない場合は元に戻ります。

defaultButton は、このプロパティが IUIComponent タイプの場合でも、mx.controls.Button クラスでなければなりません。

実装
    public function get defaultButton():IUIComponent
    public function set defaultButton(value:IUIComponent):void
defaultButtonEnabledプロパティ 
defaultButtonEnabled:Boolean  [read-write]

FocusManager がデフォルトボタンをアクティブ化するときに Enter キーが押されていることをチェックするかどうかを示すフラグです。Enter キーを認識する必要のある TextArea およびその他のコンポーネントでは、このプロパティを false に設定し、デフォルトボタンが存在する場合に Enter キーがデフォルトボタンの click イベントを送出しないようにします。

実装
    public function get defaultButtonEnabled():Boolean
    public function set defaultButtonEnabled(value:Boolean):void
focusPaneプロパティ 
focusPane:Sprite  [read-write]

コンテナ間でフォーカスが移動されるときにコンテナ間で移動する単一の Sprite オブジェクトです。Sprite は、コンポーネントがフォーカスを持つ可視インジケータの親として使用されます。

実装
    public function get focusPane():Sprite
    public function set focusPane(value:Sprite):void
nextTabIndexプロパティ 
nextTabIndex:int  [read-only]

このタブループで次に使用する固有のタブインデックス。

実装
    public function get nextTabIndex():int
showFocusIndicatorプロパティ 
showFocusIndicator:Boolean  [read-write]

コンポーネントがフォーカスを持っていることを表すインジケータを表示するかどうかを示すフラグです。true の場合、フォーカスを取得するコンポーネントは、そのコンポーネントがフォーカスを持つ可視インジケータを描画します。

デフォルトは false で、ユーザーが Tab キーを使用すると true に設定されます。

showFocus() および hideFocus() メソッドを使用してこのプロパティを変更すると、コンポーネントがフォーカスを持つ可視インジケータも更新されるため、通常はこれらのメソッドを使用することをお勧めします。

実装
    public function get showFocusIndicator():Boolean
    public function set showFocusIndicator(value:Boolean):void
コンストラクタの詳細
FocusManager()コンストラクタ
public 関数 FocusManager(container:IFocusManagerContainer, popup:Boolean = false)

コンストラクタ。

FocusManager は、IFocusManagerContainer の子の中でフォーカスを管理します。これは、コンストラクタの実行中に IFocusManagerContainer に自動インストールされます。

パラメータ
container:IFocusManagerContainer — FocusManager をホストする IFocusManagerContainer。
 
popup:Boolean (default = false)true の場合、コンテナがポップアップコンポーネントであり、メインアプリケーションではないことを示します。
メソッドの詳細
activate()メソッド
public function activate():void

SystemManager は FocusManager をアクティブにし、複数の IFocusManagerContainer が同時に表示されると非アクティブにします。FocusManager が非アクティブ化されている IFocusManagerContainer の中でマウスがクリックされると、その FocusManager を対象とする activate() メソッドが SystemManager から呼び出されます。アクティブにされた FocusManager の deactivate() メソッドは、他の FocusManager がアクティブにされる前に呼び出されます。

FocusManager ではイベントハンドラを追加して、キーボードおよびマウス操作に関連するフォーカスを監視できるようにします。

deactivate()メソッド 
public function deactivate():void

SystemManager は FocusManager をアクティブにし、複数の IFocusManagerContainer が同時に表示されると非アクティブにします。FocusManager が非アクティブ化されている IFocusManagerContainer の中でマウスがクリックされると、その FocusManager を対象とする activate() メソッドが SystemManager から呼び出されます。アクティブにされた FocusManager の deactivate() メソッドは、他の FocusManager がアクティブにされる前に呼び出されます。

FocusManager ではイベントハンドラを削除して、キーボードおよびマウス操作に関連するフォーカスを監視できるようにします。

findFocusManagerComponent()メソッド 
public function findFocusManagerComponent(o:InteractiveObject):IFocusManagerComponent

指定されたオブジェクトが含まれている IFocusManagerComponent を返します (存在する場合)。プレーヤーでは Flex コンポーネントのサブコンポーネントにフォーカスを設定できるため、このメソッドでは、コンポーネント側から見てどの IFocusManagerComponent にフォーカスがあるかを判別します。

パラメータ
o:InteractiveObject — プレーヤーレベルのフォーカスを取得できるオブジェクトです。

戻り値
IFocusManagerComponento または null が格納されている IFOcusManagerComponent です。
getFocus()メソッド 
public function getFocus():IFocusManagerComponent

現在フォーカスを持っている IFocusManagerComponent コンポーネントを取得します。このメソッドを呼び出すと、どのコンポーネントにフォーカスがあるかが示されるので、Stage オブジェクトよりもこのメソッドを使用することをお勧めします。Stage オブジェクトは、該当コンポーネント内のサブコンポーネントを返す場合があります。

戻り値
IFocusManagerComponent — フォーカスを持っている IFocusManagerComponent オブジェクト。
getNextFocusManagerComponent()メソッド 
public function getNextFocusManagerComponent(backward:Boolean = false):IFocusManagerComponent

ユーザーが Tab キーを押して別のコンポーネントにナビゲートすると、フォーカスを取得する IFocusManagerComponent を返します。アプリケーション内に他に有効なコンポーネントがない場合は、現在フォーカスがあるコンポーネントと同じコンポーネントを返します。

パラメータ
backward:Boolean (default = false)true の場合、Shift キーを押しながら Tab キーを押した場合と同じオブジェクトを返します。

戻り値
IFocusManagerComponent — フォーカスを取得するコンポーネント。
hideFocus()メソッド 
public function hideFocus():void

showFocusIndicatorfalse に設定し、フォーカスがあるオブジェクト (存在する場合) から可視のフォーカスインジケータを削除します。

setFocus()メソッド 
public function setFocus(o:IFocusManagerComponent):void

フォーカスを IFocusManagerComponent コンポーネントに設定します。コンポーネントの可視性や、有効にされた状態またはその他のすべての条件はチェックされません。

パラメータ
o:IFocusManagerComponent — フォーカスを取得可能なコンポーネント。
showFocus()メソッド 
public function showFocus():void

showFocusIndicatortrue に設定し、フォーカスがあるオブジェクト (存在する場合) に可視のフォーカスインジケータを描画します。

toString()メソッド 
public function toString():String

FocusManager オブジェクトをホストするコンポーネントのストリング表現を返します。このストリングの末尾には ".focusManager" というストリングが追加されます。

戻り値
String