パッケージ | fl.managers |
クラス | public class FocusManager |
継承 | FocusManager Object |
実装 | IFocusManager |
言語バージョン: | ActionScript 3.0 |
製品バージョン: | Flash CS3 |
ランタイムバージョン: | Flash Player 9.0.28.0, AIR 1.0 |
タブループは一般に、Tab キーを使って移動されます。フォーカスは、タブループ内のコンポーネント間を、フォーカスがある最初のコンポーネントから最後のコンポーネントへ、そしてまた最初のコンポーネントへと、循環するパターンで移動します。タブループには、コンテナ内のすべてのコンポーネントおよびタブが有効なコンポーネントが含まれています。アプリケーションには、数多くのタブループを含めることができます。
1 つの FocusManager インスタンスが、1 つのタブループを管理します。メインアプリケーションは常に、少なくとも 1 つの FocusManager インスタンスと関連付けられていますが、アプリケーションでは、その中の各タブループの管理に別々の FocusManager インスタンスを使用します。アプリケーションに、例えばコンポーネントからなるタブループを別途含んでいるポップアップウィンドウなどがある場合は、さらに FocusManager インスタンスが必要となることがあります。
FocusManager インスタンスによって管理可能なコンポーネントはすべて、fl.managers.IFocusManagerComponent インターフェイスが実装されている必要があります。Flash Player がフォーカスを管理しているオブジェクトには、IFocusManagerComponent インターフェイスの実装は必要ありません。
FocusManager クラスは、デフォルトボタンの実装方法も管理します。デフォルトボタンは、フォーム上で Enter キーが押されると、そのときフォーカスがどこにあるかに応じて、click
イベントを送出します。デフォルトボタンは、テキストエリアにフォーカスがある場合、または ComboBox や NumericStepper コンポーネントなどのコンポーネント内で値が編集されている場合には、click
イベントを送出しません。
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
defaultButton : Button
現在のデフォルトボタンを取得または設定します。 | FocusManager | ||
defaultButtonEnabled : Boolean
デフォルトのボタンが有効かどうかを示す値を取得または設定します。 | FocusManager | ||
form : DisplayObjectContainer
IFocusManager の基本 DisplayObjectContainer で、通常はステージです。 | FocusManager | ||
nextTabIndex : int [読み取り専用]
このタブループで次に使用する固有のタブインデックスを取得します。 | FocusManager | ||
showFocusIndicator : Boolean
フォーカスのあるコンポーネントをフォーカスの可視インジケーターでマークするかどうかを示す値を取得または設定します。 | FocusManager |
メソッド | 定義元 | ||
---|---|---|---|
FocusManager(container:DisplayObjectContainer)
新しい FocusManager インスタンスを作成します。 | FocusManager | ||
FocusManager インスタンスをアクティブにします。 | FocusManager | ||
FocusManager を非アクティブ化します。 | FocusManager | ||
指定されたオブジェクトが含まれているインタラクティブオブジェクト(存在する場合)を取得します。 | FocusManager | ||
現在フォーカスを持っているインタラクティブオブジェクトを取得します。 | FocusManager | ||
ユーザーが Tab キーを押して次のオブジェクトに移動すると、フォーカスを受け取るインタラクティブオブジェクトを取得します。 | FocusManager | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
showFocusIndicator 値を false に設定し、フォーカスがあるオブジェクト(存在する場合)から可視のフォーカスインジケーターを削除します。 | FocusManager | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
フォーカスを IFocusManagerComponent コンポーネントに設定します。 | FocusManager | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
showFocusIndicator 値を true に設定し、フォーカスがあるオブジェクト(存在する場合)に可視のフォーカスインジケーターを描画します。 | FocusManager | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | 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
に設定されていると、フォーカスマネージャーは 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 | プロパティ |
showFocusIndicator | プロパティ |
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 |
現在フォーカスを持っているインタラクティブオブジェクトを取得します。このメソッドを呼び出すと、どのコンポーネントにフォーカスがあるかが示されるので、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
に設定し、フォーカスがあるオブジェクト(存在する場合)に可視のフォーカスインジケーターを描画します。
例を実行するには、次の手順に従います。
- TextInput コンポーネントをライブラリに追加します。
- このコードを FLA ファイルと同じディレクトリに FocusManagerExample.as という名前で保存します。
- 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); } } }
Tue Jun 12 2018, 10:34 AM Z