Просмотр полной версии : Действие с клавы
Нужно при нажатии на определенные кнопки клавы запускать функцию. Особенно интересуют функциональные клавиши (не знаю их код) и интересует сочетание нажатия нескольких клавиш по типу хоткеев (не знаю реализации)
Где можно почитать на эту тему?
ЗЫ. Уже гуглил
alexcon314
23.12.2008, 21:32
Почитать нужно про класс Key.
По поводу хоткеев - возможности тут есть, хоть и ограничены, но для флэш-приложения должно хватить.
alexcon314, так в доках нет списков кодов какой клавише какой код соответствует.
И что по поводу сочетания нажатия нескольких кнопок? Хотелось бы если не решение, так хотя бы наводку на нужную информацию получить.
И вот попробовал запустить функцию по нажатию F1(key-код 112), так она перехватывается системой и бросает меня в хелп того софта, которым открывается флеш. Как этого избежать?
2TanaTiX, вот как то так оно реализуется
var listener = {
onKeyDown:function() {
if(Key.isDown(Key.SHIFT) && Key.isDown(Key.getAscii("F"))) {
trace("Shift-F");
}
}
}
Key.addListener(listener);
Еще нужно помнить, что во FlashIDE некоторые функциональные клавиши могут не работать, а при запуске отдельно в плеере - срабатывать
expl, ага, спасибо, этот код уже тоже нашел. Точнее пробовал, но из-за того что пробовал его в отношении функциональных клавиш - не получалось.
А вот как сделать(я надеюсь, что это осуществимо), что б можно было запустить функцию при изолированном нажатии на клавишу "F1". Я пробовал и в ИДЕ, и в флеш-плеере, и в эксплорере открывал - срабатывает в лучшем случае при сочетании с другой клавишей. Изолированно у меня никак не получается. Жду помощи. Заранее спасибо.
Кстати, еще вопрос вдогонку по теме:
Как правильней писать
if (Key.getCode() == 17) {
или
if(Key.isDown(17)){
или если речь идет о контролах и пр. нелитеральных клавишах, о лучше их описывать их именем (напр., "delete" и пр.)?
isDown Вам для сочетаний, а getCode - для определения что нажали последним. Вообщето не взаимозаменяемые вещи совершенно, что значит "как правильно"? Зависит от того, что Вы хотите.
По поводу перехвата шорткеев - Вы отключаете системное слежение командой fscommand('trapallkeys', 'true');?
------------
PS. Переходите уже на AS3)))
alexcon314
24.12.2008, 11:00
Коды клавиш:
Flash8->F1->Learning ActonScript 2.0 in Flash->Keyboard Keys and Key Code Values
Пример:
this.createTextField("getCodeTxt", 1, 50, 5, 35, 20);
this.createTextField("getAsciiTxt", 2, 50, 25, 35, 20);
this.createTextField("codeLabelTxt", 3, 0, 5, 50, 20);
this.createTextField("asciiLabelTxt", 4, 0, 25, 50, 20);
getCodeTxt.border = true;
getAsciiTxt.border = true;
codeLabelTxt.text = "CODE";
asciiLabelTxt.text = "ASCII";
onKeyDown = function() {
getCodeTxt.text = Key.getCode();
getAsciiTxt.text = Key.getAscii();
};
Key.addListener(this);
Ловятся так же кнопки типа Mute, My Computer, WWW т.п. дополнительные кнопки на клаве по getCode().
Не ловятся F10, PrtScr, Alt. Хоткеи с кнопкой Win тоже, ибо уводят фокус с плеера, хотя сама эта кнопка ловится.
Нельзя различить левый/правый Ctrl и Shift.
Ну и конечно системные хоткеи типа Alt+Tab, Ctrl+Esc, Alt+F4 и т.п. тоже не отловишь.
F1 в плеере ловится без проблем.
alexcon314, Wolsh, спасибо за разъяснения
alexcon314, по поводу такой системы проверки - мог бы и сам догадаться
PS. Wolsh, да вот все никак :( Может после НГ попустит... :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.