3

我正在开发具有 ColorPicker 组件的 Flash Builder 应用程序。当 ColorPicker 获得焦点并且我从键盘按向左向右箭头时,颜色会发生变化。

那里的文档说这是 ColorPicker 的默认行为:

当色板面板关闭但具有焦点时,按向上和向下箭头键不起作用。左右箭头键更改颜色选择器选择,在颜色之间移动,就像面板打开一样。

不幸的是,将焦点设置为 false 没有帮助。有没有办法避免使用键盘箭头改变颜色?

谢谢你。

4

1 回答 1

2

支持键盘导航的 Flex 组件会覆盖keyDownHandler()UIComponent. 还有一种keyUpHandler()方法,但您通常只需要使用其中一种。

在这种情况下,ColorPicker组件会覆盖keyDownHandler(). 它很长,你可以在Apache Flex github repo的第 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 回答