Поймать ввод пресс во флеш блоке на веб странице - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть веб-страница с флэш-заголовком.Во флэш-заголовке (блоке) присутствуют различные выпадающие меню вместе с кнопкой «Отправить».

Когда пользователь нажимает «Ввод», я хочу отправить форму.Тем не менее, я не могу поймать любую клавишу:

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownFunc); 
root.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownFunc); 
optiesPanelNew.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownFunc); 
optiesPanelNew.ddOptiesMerk.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownFunc); 

function onKeyDownFunc(evt)
{
    if (evt.keyCode == Keyboard.ENTER)
    {
        submitForm();
    }
}

Этот javascript работает, если html-часть страницы (не флэш) имеет фокус:

document.body.onkeydown = function theFunction()
{
    alert("keydown");
}

Редактировать: О нет, файл флэш-памяти был написан в AS2 ... извините: - / FYI: код, который я использовал, был: (AS2):

var keyListener:Object = new Object();
keyListener.onKeyDown = function():Void
{
    if(Key.getCode()==13)
        submitForm();

}

Key.addListener(keyListener); 

1 Ответ

1 голос
/ 03 апреля 2012

Я думаю, вам нужно указать тип события в обработчике (то есть KeyboardEvent), потому что таким образом отправленный объект будет приведен к объекту Event, когда его экземпляр будет передан обработчику.Класс Event не имеет свойства keyCode , и поэтому условие для отправки формы не выполняется.Вот почему форма не отправляется.

Итак, попробуйте заменить строку

function onKeyDownFunc(evt)

на

function onKeyDownFunc(evt:KeyboardEvent)

, и это должно сработать.

Хорошего дня.

...