相変わらず、縦長のFlashLiteをやっております。前の記事でフォーカスのループに悩まされていましたが、なんとか解決しました。という事を書いたのですが。話はまわ終わっていませんでした。

前回と同様、終わってみれば本当に本当に簡単なことでした。難しく考えすぎず、まずは初心に帰りなさい、ということですな。

今回はコードを書くまでもなさそうですね。やったことは、

「上端(下端)にしたいボタンのすぐ先(上端ならそれより少し上、下端ならその逆)にもう1個ボタンを作り、そのボタンのオンマウスイベントと同時に直前のボタンへフォーカスを当てなおす」

です。。。

では、コードをご覧下さい。

ButtonA.onRollOver = function() {
Selection.setFocus(ButtonB);
}
ButtonE.onRollOver = function() {
Selection.setFocus(ButtonD);
}

上から順にBCDと縦にボタン並んでいて、B,Dをそれぞれ上、下とした場合、Bの少し上にダミーAを、Dの少し下にダミーEのボタンを置きます。

「A(E)にフォーカスがあたったら、すぐにB(D)に当て直して下さい」というもの。

B(D)にフォーカスが当たっている状態で上(下)ボタンを押しても処理が一瞬で済んでしまうので、見た目上、動いていないように見える。すなわちループを阻止できるという訳です。

これでようやく解決か。少し寝よう、、

Comments

Powered by Facebook Comments