| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
FocusManager クラスは、マウスまたはキーボードにより
タブループとして移動される一連のコンポーネントのフォーカスを管理します。
タブループは一般に、Tab キーを使って移動されます。フォーカスは、タブループ内のコンポーネント間を、フォーカスがある最初のコンポーネントから最後のコンポーネントへ、そしてまた最初のコンポーネントへと、循環するパターンで移動します。タブループには、コンテナ内のすべてのコンポーネントおよびタブが有効なコンポーネントが含まれています。アプリケーションには、数多くのタブループを含めることができます。
1 つの FocusManager インスタンスが、1 つのタブループを管理します。メインアプリケーションは常に、少なくとも 1 つの FocusManager インスタンスと関連付けられていますが、アプリケーションでは、その中の各タブループの管理に別々の FocusManager インスタンスを使用します。アプリケーションに、例えばコンポーネントからなるタブループを別途含んでいるポップアップウィンドウなどがある場合は、さらに FocusManager インスタンスが必要となることがあります。
FocusManager インスタンスによって管理可能なコンポーネントはすべて、fl.managers.IFocusManagerComponent インターフェイスが実装されている必要があります。Flash Player がフォーカスを管理しているオブジェクトには、IFocusManagerComponent インターフェイスの実装は必要ありません。
FocusManager クラスは、デフォルトボタンの実装方法も管理します。デフォルトボタンは、フォーム上で Enter キーが押されると、そのときフォーカスがどこにあるかに応じて、click イベントを送出します。デフォルトボタンは、テキストエリアにフォーカスがある場合、または ComboBox や NumericStepper コンポーネントなどのコンポーネント内で値が編集されている場合には、click イベントを送出しません。
例を表示
defaultButton:Button [読み書き可能]
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
現在のデフォルトボタンを取得または設定します。
デフォルトボタンは、Enter キーが押されると、そのときフォーカスがどこにあるかに応じて click イベントを送出する、フォーム上のボタンです。
実装 public function get defaultButton():Button public function set defaultButton(value:Button):voiddefaultButtonEnabled:Boolean [読み書き可能]
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
デフォルトのボタンが有効かどうかを示す値を取得または設定します。この値が true に設定されていると、フォーカスマネージャは Enter キーを監視して、ボタンコンポーネント以外のコンポーネントにフォーカスがあるときに Enter キーが押された場合に、デフォルトボタンに対して click イベントを送出します。 この値が false に設定されていると、フォーカスマネージャは Enter キーを監視しません。 Enter キーを使用するコンポーネントでは、このプロパティを false に設定して、ユーザーが Enter キーを押したときにデフォルトのボタン (存在する場合) に対して click イベントが送出されることを回避します。
実装 public function get defaultButtonEnabled():Boolean public function set defaultButtonEnabled(value:Boolean):voidnextTabIndex:int [読み取り専用]
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
このタブループで次に使用する固有のタブインデックスを取得します。
実装 public function get nextTabIndex():intshowFocusIndicator:Boolean [読み書き可能]
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
フォーカスのあるコンポーネントをフォーカスの可視インジケータでマークするかどうかを示す値を取得または設定します。
実装 public function get showFocusIndicator():Boolean public function set showFocusIndicator(value:Boolean):voidpublic function FocusManager(container:DisplayObjectContainer)| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
新しい FocusManager インスタンスを作成します。
フォーカスマネージャは、DisplayObjectContainer オブジェクトの子の中でフォーカスを管理します。
パラメータ public function activate():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
FocusManager インスタンスをアクティブにします。
FocusManager インスタンスは、イベントハンドラを追加して、フォーカスに関連したキーボード操作とマウス操作を監視できるようにします。
public function deactivate():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
FocusManager を非アクティブ化します。
FocusManager では、フォーカスに関連するキーボードやマウスの操作を監視できるイベントハンドラを削除します。
public function findFocusManagerComponent(component:InteractiveObject):InteractiveObject| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
指定されたオブジェクトが含まれているインタラクティブオブジェクト (存在する場合) を取得します。プレーヤーでは Flash コンポーネントのサブコンポーネントにフォーカスを設定できます。このメソッドでは、コンポーネント側から見てどのインタラクティブオブジェクトにフォーカスがあるかを判別します。
パラメータ
戻り値 public function getFocus():InteractiveObject| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
現在フォーカスを持っているインタラクティブオブジェクトを取得します。このメソッドを呼び出すと、どのコンポーネントにフォーカスがあるかが示されるので、Stage オブジェクトよりもこのメソッドを使用することをお勧めします。Stage オブジェクトは、該当コンポーネント内のサブコンポーネントを返す場合があります。
戻り値 public function getNextFocusManagerComponent(backward:Boolean = false):InteractiveObject| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
ユーザーが Tab キーを押して次のオブジェクトに移動すると、フォーカスを受け取るインタラクティブオブジェクトを取得します。このメソッドは、アプリケーション内に他に有効なオブジェクトがなければ、現在フォーカスを持っているオブジェクトを取得します。
パラメータ
| backward:Boolean (default = false) —
このパラメータが true に設定されている場合、フォーカスは後方に移動し、それによりこのメソッドは、Shift + Tab キーが押されると次にフォーカスを受け取るオブジェクトを取得します。
|
戻り値 public function hideFocus():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
showFocusIndicator 値を false に設定し、フォーカスがあるオブジェクト (存在する場合) から可視のフォーカスインジケータを削除します。
public function setFocus(component:InteractiveObject):void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
フォーカスを IFocusManagerComponent コンポーネントに設定します。このメソッドでは、コンポーネントの可視性、有効にされた状態またはその他の条件については、チェックされません。
パラメータ
public function showFocus():void| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9.0.28.0 |
showFocusIndicator 値を true に設定し、フォーカスがあるオブジェクト (存在する場合) に可視のフォーカスインジケータを描画します。
この例では、FocusManager クラスを使用して、ステージ上のコンポーネント間でフォーカスを変更する方法を説明します。
例を実行するには、次の手順に従います。
- 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);
}
}
}
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Thu Jan 8 2009, 12:14 AM -08:00