Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   AS3 Не всегда работает клавиатура (http://www.flasher.ru/forum/showthread.php?t=210738)

kellua 28.04.2015 21:08

AS3 Не всегда работает клавиатура
 
Здравствуйте. Есть ролик с несколькими кадрами.
На экране пару кнопок и код для изменения переменных при нажатии на клавиатуре стрелочек.
Проблема вот какая: все работает, потом жму кнопку для перехода на другой frame и сама кнопка исчезает. Тут перестают работать стрелочки, пока не нажму на пустое поле во flash. После все опять работает.
(проблема возникает в любом случае при исчезновении нарисованной кнопки после нажатия)

Можно как-нибудь исправить это (чтобы стрелки работали всегда)?


Код AS3:

stage.addEventListener(KeyboardEvent.KEY_DOWN,reportKeyDown); 
stage.addEventListener(KeyboardEvent.KEY_UP,reportKeyUp);
 
function reportKeyDown(event:KeyboardEvent):void
{
//кнопка нажата
        if (event.keyCode == 38) {perup=1;};
        if (event.keyCode == 40) {perdown=1;};
        if (event.keyCode == 37) {perleft=1;};
        if (event.keyCode == 39) {perright=1;};
};
 
function reportKeyUp(event:KeyboardEvent):void
{
//кнопка отпущена
        if (event.keyCode == 38) {perup=0;};
        if (event.keyCode == 40) {perdown=0;};
        if (event.keyCode == 37) {perleft=0;};
        if (event.keyCode == 39) {perright=0;};
}


undefined 28.04.2015 21:27

попробуйте во всех кадрах в самом начале прописать
Код AS3:

stage.focus=stage;


kellua 28.04.2015 21:38

Не совсем помогает, проблема в том что кнопки могут убираться без смены frame.

Wolsh 28.04.2015 23:13

Цитата:

кнопки могут убираться без смены frame
То есть убираться кодом. Ну вот после removeChild() и верните фокус стейджу. Или перед.
Вобщем, после нажатия кнопки (она захватывает фокус на себя, а после удаления стейдж не считает ее частью себя и не реагирует).

dimarik 29.04.2015 20:01

Похоже? http://www.flasher.ru/forum/blog.php?b=627


Часовой пояс GMT +4, время: 19:11.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.