PDA

Просмотр полной версии : клик по кнопке при помощи клавы


Razielakaisrail
03.03.2009, 08:57
Здраствуйте помогите пожалуйста с такой проблемой. Есть обычное меню пять кнопок и мне нужно чтоб к каждой кнопке было прикрученно действие с клавиатуры например я нажал клавишу Q сработала 1 кнопка клавиша W сработала 2 кнопка помогите пожалуйста!

nOobCrafter
03.03.2009, 10:50
var keyListener:Object = new Object();
keyListener.onKeyDown = function()
{
if (Key.getCode() == 38) trace("Up")
if (Key.getCode() == 40) trace("Down")
if (Key.getCode() == 37) trace("Left")
if (Key.getCode() == 39) trace("Right")
};
Key.addListener(keyListener); // добавляем поддержку клавиш
это пример управления со стрелочек. Смысл примерно таков, открываем хелп, ищем инфу про Key.getCode() и сомтрим как реализовывает управление. Мы сначала считываем значение клавиши, потом проверем елси это значение вызвано то запускаем что то.

Razielakaisrail
03.03.2009, 18:20
Большое спасибо за ответ! Я понимаю все хотят чтоб начинающие обучались сами и догонали всё, как это делали возможно вы! Но у меня немного другая ситуация не могли бы вы дать прямой ответ как это сделать! Я очень хочу обучиться AS но в данный момент нет времени надо срочно, а до меня так и не доходит как сделать управление кнопками с клавиатуры! Если не сложно помогите надо очень!

qazwsx
03.03.2009, 18:31
Правда делать кучу ифов на каждое нажатие это нехорашо:(

P.S Автору. nOobCrafter в своем примере показал как отловить нажатие определенной клавиши и выполнить действие при нажатии. Что еще показать я не понимаю...

Razielakaisrail
03.03.2009, 18:45
мне для тугих! Спасибо

Добавлено через 1 минуту
какой код нужно вставить в кнопку чтоб работало вот и всё что я хочу!

qazwsx
03.03.2009, 19:00
В кнопкиу никакого.

Если на кнопках уже есть нужные действия то можно просто

if (Key.getCode() == код нужной клавиши)
{
такаятоКнопка.onPress();
}

Razielakaisrail
03.03.2009, 19:07
спасибо большое!

nOobCrafter
03.03.2009, 20:10
qazwsx а как можно без кучи ифов если надо отлавливать реакцию пары клавишь? О_о

qazwsx
03.03.2009, 20:28
import mx.events.EventDispatcher;

var dispatcher:EventDispatcher = new EventDispatcher();

dispatcher.addEventListener('40', pressDown);

function pressDown():Void
{
trace('ooooooooooooooo');
}

Key.addListener(this);
this.onKeyDown = function():Void
{
var e:Object = {};
e.type = Key.getCode()
dispatcher.dispatchEvent(e);
}

Я думал это очевидно

nOobCrafter
04.03.2009, 12:46
омг, спс даже недогадывался о таком, просто пользуюсь русской сборкой as_help_ru.CHM, а там на такое ссылок особо нету(
Получается что если мы нажимаем клавишу с кодом 40, то выполняется функция (трейс), а если нажали что другое то непвыполняется?

qazwsx
04.03.2009, 13:09
Ну почти. Там проверяется есть ли зарегестрированые слушатели на этот ивент. Если есть то идет рассылка ивентов этим слушателям.