Как активировать приложение flex, чтобы пользователю не нужно было щелкать внутри него, чтобы начать получать события клавиатуры - PullRequest
2 голосов
/ 26 ноября 2010

Приложение My Flex в значительной степени ориентировано на клавиатуру.Он использует 100% окна браузера, и я бы хотел, чтобы пользователь мог сразу же начать его использовать - сразу после загрузки.

Однако кажется, что приложение только «активируется» (то есть происходит событие активации), когда мышь щелкает где-то внутри него, что очень неудобно для моего приложения, насыщенного клавиатурой.

Могу ли я принудительно активировать свое приложение в какой-то момент во время / после его загрузки?

Надеюсь, мне не нужно показывать какой-то глупый оверлей "щелкни внутри, чтобы активировать" каждый раз, когда загружается страница ...

Приложение

InВ некоторых браузерах ([кашель] Chrome [/ кашель]) фокус теряется всякий раз, когда пользователь отключается от браузера (или даже касается адресной строки), и не восстанавливается при переключении обратно.Поэтому решение должно учитывать не только первый фокус при загрузке страницы, но и «перефокусировку».

Ответы [ 2 ]

5 голосов
/ 26 ноября 2010

AFAIK проблема возникает только в определенных браузерах, таких как Firefox.Вы можете изменить это поведение с помощью небольшого количества JavaScript.Отредактируйте index.template.html и добавьте следующий фрагмент кода в теги <head></head>:

<script type="text/javascript">
    function setFocusToSwf() {
        var swf = document.getElementById('${application}');
         if (swf) swf.focus();
    }
</script>

Flex Builder заменит заполнитель ${application} при компиляции приложения.<body>, чтобы ваша новая функция вызывалась по завершении загрузки документа браузером:

<body onload="setFocusToSwf()">
1 голос
/ 22 марта 2012

Используйте его при создании, чтобы заставить его работать в chrome:

ExternalInterface.call("function() { 
    var app = document.getElementById('App');
    if(app) {
        app.tabIndex = 0;
        app.focus();
    }
}");

Рави Санкар Гонтина

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...