Просмотр полной версии : клик по кнопке при помощи клавы
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 но в данный момент нет времени надо срочно, а до меня так и не доходит как сделать управление кнопками с клавиатуры! Если не сложно помогите надо очень!
Правда делать кучу ифов на каждое нажатие это нехорашо:(
P.S Автору. nOobCrafter в своем примере показал как отловить нажатие определенной клавиши и выполнить действие при нажатии. Что еще показать я не понимаю...
Razielakaisrail
03.03.2009, 18:45
мне для тугих! Спасибо
Добавлено через 1 минуту
какой код нужно вставить в кнопку чтоб работало вот и всё что я хочу!
В кнопкиу никакого.
Если на кнопках уже есть нужные действия то можно просто
if (Key.getCode() == код нужной клавиши)
{
такаятоКнопка.onPress();
}
Razielakaisrail
03.03.2009, 19:07
спасибо большое!
nOobCrafter
03.03.2009, 20:10
qazwsx а как можно без кучи ифов если надо отлавливать реакцию пары клавишь? О_о
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, то выполняется функция (трейс), а если нажали что другое то непвыполняется?
Ну почти. Там проверяется есть ли зарегестрированые слушатели на этот ивент. Если есть то идет рассылка ивентов этим слушателям.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.