Форум Flasher.ru

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

evgenw 17.03.2015 15:09

Не всегда отслеживает событие клавиатуры (баг? или я напортачил?)
 
Всем привет
Выловил интересный баг в своей "ролике". Есть мувик кнопки (старт-стоп) таймера с 2 кадрами вкл-выкл и действие продублированы пробелом на клавиатуре
Код AS3:

stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed);

При первом запуске если сразу нажимать на мувик (старт-стоп) то события клавиатуры не прослушиваются вообще. Если клацнуть в пустом поле где нибудь то потом клавиатура замечательно прослушивается.
Где собака зарыта? неужели мувик (старт-стоп) перехватывает события клавиатуры? по идее не должен ведь "слушатель" у меня на всем поле весит, а на кнопке только stop(); больше ничего нет.

ZackMercury 17.03.2015 15:12

Есть такая вещь, как stage.focus. Когда вы клацаете по вложенному мувику, фокус становится этот мувик, и события клавиатуры нужно слушать у него.
Код AS3:

stage.focus = stage

вернёт фокус stage.

evgenw 17.03.2015 17:41

Точно, я так и думал, спасибо за код - помог.
Сложность заключалась вот еще в чем - на мувике прямоугольник и сверху текст (старт-стоп) так вот когда мышка находилась просто над прямоугольником - все работало, а вот когда прям над буквами - тогда и происходил этот глюк.
Просто на практике вело себя как то странно то работает то не работает - целый день, наверное, вылавливал в чем проблема.

Спасибо :)

dimarik 17.03.2015 20:57

Цитата:

Сообщение от ZackMercury (Сообщение 1180162)
Есть такая вещь, как stage.focus. Когда вы клацаете по вложенному мувику, фокус становится этот мувик, и события клавиатуры нужно слушать у него.

Я так не думаю. Дело в чем-то другом. Адоб говорит, что

Код:

To listen globally for key events, listen on the Stage for the capture and target or bubble phase.


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

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