- 締切済み
テキストフィールドのフォーカス設定について
どなたかご存知でしたら是非ご教示ください。 インスタンス名が「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内での再生でも起きます。 何かヒントになるようなことでもかまいませんので、よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- perse
- ベストアンサー率74% (113/152)
Flash2004です。 確かに Selection.setFocus("_root.id"); だけではフォーカスは移りません。 フレームを伸ばして、例えば20フレーム目に this.stop(); Selection.setFocus("_root.id"); を記述します。 これでもフォーカスは移りません。 しかし、20フレーム目に到達する前にFlash内を一度クリックすると移ってくれました。 (ムービープレビューでのはなし)
お礼
なるほど。 ということは、ムービーが再生されただけでは(ユーザーのインタラクションが無い状態では)、ムービーがアクティブになっていない。 だから、スクリプトが無効になる。 というような感じですね。 ムービー内のどこかがクリックされると、ムービーが活性化し、それ以降ならスクリプトが有効になると....。 参考になりました。 ありがとうございます。