Spark Button - почему нажатие клавиши ввода не вызывает событие щелчка? - PullRequest
1 голос
/ 08 сентября 2011

Я немного запутался, почему это не поведение по умолчанию?

Итак, как мне обнаружить нажатие клавиши ввода на моей кнопке и запустить обработчик события нажатия? (Например, в поле TextInput есть событие 'enter')

Спасибо

Ответы [ 2 ]

2 голосов
/ 13 сентября 2011

РЕДАКТИРОВАТЬ: игнорировать все, что я опубликовал ранее.

Вы можете использовать событие keyDown на кнопке зажигания и создать обработчик события с помощью KeyboardEvent.

        <s:Button label="Submit" keyDown="enter_pressed(event)" id="submit" click="submit_clickHandler(event)"/>

        protected function enter_pressed(event:KeyboardEvent):void { 
            if(event.charCode == Keyboard.ENTER){
                submit.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); 
            }
        }
2 голосов
/ 12 сентября 2011

РЕДАКТИРОВАТЬ: откат к исходной записи, событие будет запущено, только если в любом случае нажата кнопка

Событие ввода запускается, когда пользователь устанавливает фокус на кнопку и не имеет никакого отношения к клавише ввода на клавиатуре. Если я не ошибаюсь, клавишей по умолчанию для активации кнопки во Flash является пробел. Вы можете использовать Enter, выполнив что-то вроде этого:

myButton.addEventListener(KeyboardEvent.KEY_DOWN, onMyButtonKeyDown);

private function onMyButtonKeyDown(event:KeyboardEvent):void
{
    //simulate click if enter pressed
    if(event.keyCode == Keyboard.ENTER)
        myButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...