tab键切换焦点?
tab键通常用来切换控件间的焦点。flex中可以通过tabIndex来设置tab顺序。
现在有一个问题:需要让Enter键拥有与tab键同样的功能。
即,一个textInput输入完成按Enter键后,焦点转到下一个textInput。
我略微想了一下,大致有两种解决方案:
① 定义每个控件的keyDown事件,当按键为Enter时,判断目前的焦点的位置,并设置焦点转到下一位置。
方案特点:需要写大量代码,耦合度高。
② 利用现有的tabIndex定义,设法让Enter键的按下事件与tab相同。
方案特点:简洁,耦合度低。
这里我想主要请教第二种方案的实现方法。
[解决办法]
//听app的KEY_DOWN事件
this.addEventListener(KeyboardEvent.KEY_DOWN, onEnter);
private function onEnter(event:KeyboardEvent):void
{
if(event.keyCode == Keyboard.ENTER && focusManager.getFocus() is TextInput)
{
focusManager.setFocus(focusManager.getNextFocusManagerComponent());
}
}