Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.12.2008, 19:56
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 1  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
По умолчанию Действие с клавы

Нужно при нажатии на определенные кнопки клавы запускать функцию. Особенно интересуют функциональные клавиши (не знаю их код) и интересует сочетание нажатия нескольких клавиш по типу хоткеев (не знаю реализации)
Где можно почитать на эту тему?

ЗЫ. Уже гуглил
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 23.12.2008, 21:32
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 2  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Почитать нужно про класс Key.
По поводу хоткеев - возможности тут есть, хоть и ограничены, но для флэш-приложения должно хватить.

Старый 23.12.2008, 23:00
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 3  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
alexcon314, так в доках нет списков кодов какой клавише какой код соответствует.
И что по поводу сочетания нажатия нескольких кнопок? Хотелось бы если не решение, так хотя бы наводку на нужную информацию получить.

И вот попробовал запустить функцию по нажатию F1(key-код 112), так она перехватывается системой и бросает меня в хелп того софта, которым открывается флеш. Как этого избежать?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!


Последний раз редактировалось TanaTiX; 23.12.2008 в 23:31.
Старый 23.12.2008, 23:41
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 4  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
2TanaTiX, вот как то так оно реализуется
Код AS1/AS2:
var listener = {
    onKeyDown:function() {
        if(Key.isDown(Key.SHIFT) && Key.isDown(Key.getAscii("F"))) {
            trace("Shift-F");
        }
    }
}
Key.addListener(listener);
Еще нужно помнить, что во FlashIDE некоторые функциональные клавиши могут не работать, а при запуске отдельно в плеере - срабатывать

Старый 24.12.2008, 00:27
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 5  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
expl, ага, спасибо, этот код уже тоже нашел. Точнее пробовал, но из-за того что пробовал его в отношении функциональных клавиш - не получалось.
А вот как сделать(я надеюсь, что это осуществимо), что б можно было запустить функцию при изолированном нажатии на клавишу "F1". Я пробовал и в ИДЕ, и в флеш-плеере, и в эксплорере открывал - срабатывает в лучшем случае при сочетании с другой клавишей. Изолированно у меня никак не получается. Жду помощи. Заранее спасибо.

Кстати, еще вопрос вдогонку по теме:
Как правильней писать
Код AS1/AS2:
if (Key.getCode() == 17) {
или
Код AS1/AS2:
if(Key.isDown(17)){
или если речь идет о контролах и пр. нелитеральных клавишах, о лучше их описывать их именем (напр., "delete" и пр.)?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 24.12.2008, 01:00
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
isDown Вам для сочетаний, а getCode - для определения что нажали последним. Вообщето не взаимозаменяемые вещи совершенно, что значит "как правильно"? Зависит от того, что Вы хотите.
По поводу перехвата шорткеев - Вы отключаете системное слежение командой
Код:
fscommand('trapallkeys', 'true');
?
------------
PS. Переходите уже на AS3)))
__________________
Reality.getBounds(this);

Старый 24.12.2008, 11:00
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 7  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Коды клавиш:

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; 24.12.2008 в 11:02.
Старый 24.12.2008, 13:10
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 8  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
alexcon314, Wolsh, спасибо за разъяснения
alexcon314, по поводу такой системы проверки - мог бы и сам догадаться

PS. Wolsh, да вот все никак Может после НГ попустит...
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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