• 締切済み

テキストフィールドのフォーカス設定について

どなたかご存知でしたら是非ご教示ください。 インスタンス名が「id」というテキストフィールドをステージに配置します。 1フレーム目に、   Selection.setFocus("_root.id"); というスクリプトを書きます。 これで、再生したらテキストフィールドにフォーカスが設定されると期待しているのですが、そうなりません。 そこで、ボタン用のムービークリップを作り、ステージに配置(インスタンス名:focusSetButton)し、   _root.focusSetButton.onRelease = function() {     Selection.setFocus("_root.id");   } というスクリプトを1フレーム目に書きます。 これでムービーを再生してもフォーカスは設定されませんが、「focusSetButton」をクリックすると、フォーカスが設定されます。 ユーザーのアクションを伴わない場合は「Selection.setFocus」は無効で、ボタンクリックのようなユーザーアクションが伴うと有効になるのは何故なんでしょうか? また、ユーザーアクションが伴わずにフォーカスを設定する方法はあるでしょうか? 動作環境はWindows XP ServicePack 2のFlash 8です。 この現象は、アプリケーション上での再生でも、フラッシュファイル単体での再生でも、HTML内での再生でも起きます。 何かヒントになるようなことでもかまいませんので、よろしくお願いいたします。

みんなの回答

  • perse
  • ベストアンサー率74% (113/152)
回答No.1

Flash2004です。 確かに Selection.setFocus("_root.id"); だけではフォーカスは移りません。 フレームを伸ばして、例えば20フレーム目に this.stop(); Selection.setFocus("_root.id"); を記述します。 これでもフォーカスは移りません。 しかし、20フレーム目に到達する前にFlash内を一度クリックすると移ってくれました。 (ムービープレビューでのはなし)

BbBy
質問者

お礼

なるほど。 ということは、ムービーが再生されただけでは(ユーザーのインタラクションが無い状態では)、ムービーがアクティブになっていない。 だから、スクリプトが無効になる。 というような感じですね。 ムービー内のどこかがクリックされると、ムービーが活性化し、それ以降ならスクリプトが有効になると....。 参考になりました。 ありがとうございます。