FlexでButtonのカスタマイズ
FlexのButtonコントロールは、通常のマウスによるクリックのほかに、キーボードのスペースキーもクリックとして扱える。
そして当然Enterキーもクリックとして扱いたくなる。
で、Enterキーもクリックとして扱うようなプロパティは見当たらなかった。
もちろん keyDown イベントで、Enterの場合だったらクリックイベントを発生させる、としてもよいが全部に書くのは嫌や。
ソースを見てみると、keyDownHandler メソッドと keyUpHandlerメソッドに該当箇所があった。
見事に、
if (event.keyCode == Keyboard.SPACE)
とあった。
この2つメソッドをオーバーライドしたカスタムのボタンクラス作ればよいか。
override protected function keyDownHandler(event:KeyboardEvent):void
{
super.keyDownHandler(event);
//Enterキーでのクリックをサポート
if (event.keyCode == Keyboard.ENTER)
{
buttonPressed();
}
}
といった感じかな。