Нажатие клавиши табуляции на Flex? - PullRequest
0 голосов
/ 27 января 2012

Можно ли имитировать клавишу табуляции при нажатии другой клавиши? Я собираюсь сделать то же самое, но с DOWN & ENTER Key.

Я знаю о функции onKeyDown. Я пытаюсь это, но это не работает.

private function onKeyDown( e:KeyboardEvent ) :void
            {
                if( e.keyCode == Keyboard.DOWN )
                {
                    (e.currentTarget as TextInput).dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_DOWN, true, false, 0, Keyboard.TAB));
                }
            }

Я знаю, что вкладка работает по-другому, я видел это в Здесь , но все еще не идея.

Любая помощь будет оценена.

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 27 января 2012

Я решил это так. Надеюсь, это поможет кому-то еще позже.

private function onKeyDown( e:KeyboardEvent ) :void
            {
                if( e.keyCode == Keyboard.DOWN || e.keyCode == Keyboard.ENTER)
                {                   
                    focusManager.getNextFocusManagerComponent().setFocus();

                }
                if(e.keyCode == Keyboard.UP)
                {
                    focusManager.getNextFocusManagerComponent(true).setFocus();
                }
            }

Во Flash, focusManager сам по себе может быть неопределенным в этом контексте. Изменить на: . Evt.currentTarget.focusManager.getNextFocusManagerComponent () SETFOCUS ();

0 голосов
/ 27 января 2012

Попробуйте поместить компонент табуляции в массив, затем измените фокус вручную с помощью:

stage.focus = myComp;

или

stage.focus = myComps[currentCompOrderNumber+1];
...