focusRectをtrueまたはfalseに設定した時の挙動の違い

Flashでのアクセシビリティ対応時、focusRectをtrueまたはfalseに設定した時の挙動の違いにハマったのでメモ。

focusRectがtrueの時

  1. フォーカスに黄色の枠が表示される
  2. <ENTER>キーでのMouseEvent.CLICKイベントがリスナーに加えられる

focusRectがfalseの時

  1. フォーカスに黄色の枠は表示されない
  2. <ENTER>キーでのMouseEvent.CLICKイベントはリスナーに加えられない
    ※KeyboardEventで<ENTER>キーを判定しなければならない。

ボタン、ムービークリップボタンでの_over動作などはtrue/false共に付くが、MouseEvent.ROLL_OVERなどにはFocusEvent.FOCUS_INなどで対応が必要。

制作途中での変更は少々面倒。特にfalseで制作したものをtrueに変更した場合、<ENTER>キーでのクリックイベントとキーボードイベントが同時に起こり、2度クリックしたような状態になってしまうので、注意が必要。
まさにこれにハマってしまった・・・

また、visibleがfalseになものはイベントを受け付けないが、トウィーンなどでゆっくり消えていくボタンなどはremoveEventListenerを行わないと<ENTER>キー連打で何度もイベントが発生することになる。

カテゴリ:ActionScript,Flash

Post at 2009年07月28日 03:41





Feed


Powered by Movable Type 4.27-ja

Hosted by heteml