3

ColorPicker コンポーネントを含む Flash Builder アプリケーションを開発しています。ColorPicker にフォーカスがあり、キーボードから右矢印の左を押すと、色が変わります。

そこからのドキュメントによると、これは ColorPicker のデフォルトの動作です。

スウォッチ パネルが閉じていてもフォーカスがある場合は、上矢印キーと下矢印キーを押しても効果がありません。左矢印キーと右矢印キーは、カラー ピッカーの選択を変更し、パネルが開いているかのように色を移動します。

残念ながら、フォーカスを false に設定しても役に立ちません。キーボードの矢印を使用して色を変更しないようにする方法はありますか?

ありがとうございました。

4

1 に答える 1

2

keyDownHandler()キーボード ナビゲーションをサポートする Flex コンポーネントは、によって定義された保護されたメソッドをオーバーライドしますUIComponent。メソッドもありkeyUpHandler()ますが、通常はどちらか一方のみを使用する必要があります。

この場合、ColorPickerコンポーネントは をオーバーライドしますkeyDownHandler()。かなり長いので、Apache Flex github リポジトリの 1436 行で確認できます。

このメソッドをオーバーライドし、矢印キーが押された場合にスーパー クラス メソッドを呼び出さないカスタム カラー ピッカー クラスを作成します。

override protected function keyDownHandler(event:KeyboardEvent):void
{
    var keyCode:uint = event.keyCode;
    // don't call the super class for these keys
    if ( !(keyCode == Keyboard.LEFT || keyCode == Keyboard.RIGHT) )
    {
        super.keyDownHandler(event);
    }
}

これはテストされていないことに注意してください。正しく機能させるには、これよりも多くのロジックが必要になる場合があります。スーパークラスメソッドを調べることをお勧めします;)

于 2013-09-30T09:59:42.083 に答える