PDA

Просмотр полной версии : AS3 Не всегда работает клавиатура


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

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


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
попробуйте во всех кадрах в самом начале прописать

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