サイトトップ

Director Flash 書籍 業務内容 プロフィール

Macromedia Flash非公式テクニカルノート

Selection.setFocus()メソッド

ID: FN0403001 Product: Flash

Platform: All
Version: 5.0 and above

シンタックス
Selection.setFocus(インスタンスのパス)

引数
インスタンスのパス  Button、またはMovieClip、TextFieldインスタンスを指定するパスのストリング[*1]。ストリングでなく、直接ターゲットパス(インスタンスへの参照)を渡しても動作します[*2]。フォーカスを解除するには、nullまたはundefinedを指定します。

[*1] Flash MX 2004の「ActionScript辞書」に、「インスタンス名へのパスを指定するストリング」(A string specifying the path to the instance name)とあるのは、名前でよいかのような誤解を招きやすく、不適切でしょう。

[*2] ただし、後述の戻り値の解釈([*3])に、注意が必要です。

戻り値
フォーカスの設定に成功すればtrue、失敗するとfalseが返ります。フォーカスが失敗するのは、指定されたパスのインスタンスが存在しない場合[*3]や、インスタンスがButton、MovieClip、TextFieldインスタンスのいずれでもない場合、MovieClip.focusEnabledプロパティがtrueに設定されていない場合があります。

[*3] 引数にストリングでなくターゲットパスを指定した場合、インスタンスが存在しないと未定義変数と解釈され、未定義値undefinedになります。undefinedは、フォーカスを解除する場合の指定になりますので、解除に成功すればtrueが返されます。

説明
メソッド。引数であるインスタンスのパスで指定したButtonやMovieClip、TextFieldインスタンスにフォーカスを設定します[*4]。インスタンスは、フォーカス可能な状態であることが必要です。MovieClipインスタンスは、MoiveClip.focusEnabledブロパティがtrueに設定されていなければなりません。TextFieldインスタンスでフォーカスが可能なのは、[テキスト入力]のみです[*5]。。

引数として指定するストリングには、絶対パスと相対パスがともに使用できます。また、ドットシンタックスとスラッシュシンタックスのどちらで指定することも可能です。しかし、ActionScript 2.0では、ドットシンタックスのみがサポートされます[*6]。

フォーカスを解除するには、引数にnullまたはunefinedを指定します。

[*4] フォーカスが設定されると、ButtonやMovieClipインスタンスには、フォーカスを示す黄色の矩形が表示されます。TextFieldインスタンスは、入力テキストフィールド内に挿入ポイント(カーソル)が点滅します。

[*5] [ダイナミックテキスト]は、フォーカスされません。しかし、Selection.setFocus()メソッドを実行すると、戻り値としてtrueが返ります。[静止テキスト]は、TextFieldインスタンスではありません。

[*6] 実際には、動作はするようです。しかし、ActionScript 2.0では、スラッシュシンタックスをサポートしないことが明記されています(オンラインヘルプ[ActionScriptリファレンスガイド] > [ActionScriptの基礎] > [シンタックス] > [スラッシュシンタックス](Slash syntax)参照)。

 


以下のフレームアクションをMovieClipインスタンスmy_mcを配置したタイムラインに設定すると、my_mcにフォーカスが設定され、黄色い矩形が表示されます[*7]。

// MovieClip: MovieClipインスタンスmy_mcを配置
// フレームアクション
my_mc.focusEnabled = true;
trace(Selection.setFocus(my_mc._target)); // 出力: true;

[*7] フォーカスの当たった状態では、MovieClip.onKeyDownMovieClip.onKeyUpなどのキーイベントを受取ることもできます。ただし、マウスをステージ上で動かすと、フォーカスは外れます。

Player
Flash Player 5.0以降。

参考
Flash MX 2004 ActionScript Dictionary: Selection.setFocus()

_____

作成者: 野中文雄
作成日: 2004年2月29日


Copyright © 2001-2004 Fumio Nonaka.  All rights reserved.