我正在开发具有 ColorPicker 组件的 Flash Builder 应用程序。当 ColorPicker 获得焦点并且我从键盘按向左向右箭头时,颜色会发生变化。
那里的文档说这是 ColorPicker 的默认行为:
当色板面板关闭但具有焦点时,按向上和向下箭头键不起作用。左右箭头键更改颜色选择器选择,在颜色之间移动,就像面板打开一样。
不幸的是,将焦点设置为 false 没有帮助。有没有办法避免使用键盘箭头改变颜色?
谢谢你。
我正在开发具有 ColorPicker 组件的 Flash Builder 应用程序。当 ColorPicker 获得焦点并且我从键盘按向左向右箭头时,颜色会发生变化。
那里的文档说这是 ColorPicker 的默认行为:
当色板面板关闭但具有焦点时,按向上和向下箭头键不起作用。左右箭头键更改颜色选择器选择,在颜色之间移动,就像面板打开一样。
不幸的是,将焦点设置为 false 没有帮助。有没有办法避免使用键盘箭头改变颜色?
谢谢你。
支持键盘导航的 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);
}
}
请注意,这是未经测试的,您可能需要比这更多的逻辑才能使其正常工作。我建议检查超类方法;)