2年近くFlash Lite 1.1コンテンツ作る仕事やってて今気がついたんだけど、なんといままで使って来た上下キーのイベント取得方法を使う限り、「テキスト入力」型のテキストフィールドに一発でフォーカスできないみたい。
今まで、上下キーのイベントを取得するために、隠れたボタンを3つ置いて、疑似的にボタンのように見えるムービークリップをフレーム移動させるという方法で作って来たけど、テキストフィールドへのフォーカスはそのような、嘘つき技ではうまくいかない。
2段階(キー2回)がOKならテキストフィールドにフォーカスさせることはできるけど、正直そういったページは自分がユーザーだったら腹が立つのでだめだ。
今作成中のコンテンツは、デフォルトのフォーカスの流れで順番にフォーカスしていけばよく、あまり凝ったことをしないと思うので、疑似ボタンテクを使わなくてもなんとかなりそうだけど、今までこれはいけると思って作って使って来たフレームワーク(というほどのものではないが)をあきらめるのはちょっと悔しい。
実はフォーカスだけではなく、決定キーを押した時も問題で、テキストフィールドとは別のところで、隠れた決定キー感知ボタンを置いておくと、そちらが動作してしまい、テキストフィールドをクリックしたことにならないので、結果、文字入力状態にならないという問題もある。
なので、テキストフィールドがあると、根本的に疑似ではなく本物のボタンを1つ1つ配置し、その中に機能を入れ込まないとダメってことになると思う。残念。でもまた新しいフレームワーク(というほどのものではないが)がこの問題解決のためにできそうなので、それはそれで良かったか。
なるべく使い回しすれば、どうやら、当初のフレームワークより、新しいものの方が、データサイズも若干小さくなりそう。
お、なんかリファラーみたらこのページ閲覧しているかたがいらっしゃるようなので、一応追加情報ですが、テキストフィールドにフォーカスする前に「見えないボタン」系を_visible=falseさせることで、ある程度こういう問題は回避できたような気がします。ってあまり自分でもどうやったか覚えてないけど、なんか形にはなります。
投稿情報: ks | 2009年6 月17日 (水) 17:14