PDA

Просмотр полной версии : прослушиватель нажатия клавиши


Vernus
18.12.2011, 11:30
есть код:
stage.addEventListener(KeyboardEvent.KEY_DOWN, key);
function key(event:KeyboardEvent):void
{

if (String.fromCharCode(event.charCode) == "w")
{
enemy.y += 3;
route ='w';
}
if (String.fromCharCode(event.charCode) == "a")
{
enemy.x += 3;
route = 'a';
}
if (String.fromCharCode(event.charCode) == "s")
{
enemy.y -= 3;
route = 's';
}
if (String.fromCharCode(event.charCode) == "d")
{
enemy.x -= 3;
route='d';
}
}
он работает только после того как тыкнешь на сцену мышкой, я так понимаю из-за не правильного фокуса, как сделать чтобы не нужно было тыкать вышкой по сцене, поменять прослушивателя или что?

ChuwY
18.12.2011, 13:03
Пока плеер не попадет в фокус, он не принимает события клавиатуры.
Так что кликнуть надо.

PainKiller
18.12.2011, 21:09
для отслеживания фокуса я обычно в класс документа вставляю такой код:

private function addListeners(e:Event):void
{
stage.addEventListener(Event.DEACTIVATE, activateWindow);
stage.addEventListener(Event.ACTIVATE, removeWindow);
}
private function activateWindow(e:Event):void
{
if (! warningWindow)
{
warningWindow = new WarningDialog ();
warningWindow.x = 300;
warningWindow.y = 300;
}
addChild(warningWindow);
}
private function removeWindow(e:Event):void
{
removeChild(warningWindow);
}

warningWindow выводит текст "для продолжения кликните по приложению". Может пригодится :-)