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

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

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

Регистрация: Aug 2006
Адрес: Нижний Тагил
Сообщений: 48
Thumbs down проблема с Key

У меня следующая проблема.
Flash реагирует не на все нажатия клавиш. При нажатии на клавиши ESC, TAB, BACKSPACE, ENTER не вызывается даже событие onKeyDown.
Клавиша DELETE при использовании её в таком коде:
Код:
listner = new Object();
listner.onKeyDown = function()
{   
   if (Key.isDown(Key.DELETEKEY))
   {
      // Действия
   }
}
Key.addListener(listner);
работает только в режиме отладки.
В режиме просмотра и в SWF не работает.

Попробовал так:
Код:
listner = new Object();
listner.onKeyDown = function()
{   
   if (Key.getCode() == Key.DELETEKEY)
   {
      // Действия
   }
}
Key.addListener(listner);
не работает. Опытным путём установил, что для клавиши DELETE Key.getCode() = 255, а Key.getAscii() = 0
Более того опытным путём обнаружил, что код 255 имеют все дополнительные клавиши (типа "Калькулятор", ...), т.е. нестандартные, которые Flash не знает. Почему же у DELETE такой же код?
По документации к Flash клавиша DELETE имеет код 46

Вообщем, я уже вообще запутался! Нужна помощь! Помогите!

Старый 24.04.2007, 07:11
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
В режиме просмотра, часть клавиш используется флешом для управления, поэтому чтобы отлавливать все клавиши, надо выбрать Control > Disable Keyboard Shortcuts. В swf поможет
Код:
fscommand ("trapallkeys", true);
А проблем с delete я у себя не нашел.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Aug 2006
Адрес: Нижний Тагил
Сообщений: 48
Я пробовал
Код:
fscommand ("trapallkeys", true);
не получалось!

Нашёл причину - корявый Flash. Установил себе нормальный Flash - заработало

Осталась небольшая проблемка. При тестировании такой программки:
Код:
list = new Object();
list.onKeyDown = function()
{
   trace("keyCode: "+Key.getCode()+"\t\t keyAscii: "+Key.getAscii());
};
Key.addListener(list);
fscommand("trapallkeys", "true");
при нажатии на DELETE окно trace отображает следующее:
Код:
keyCode: 255		 keyAscii: 0
keyCode: 46		 keyAscii: 127
то есть событие вызывается 2 раза: одно как для клавиши, которую он не знает, а второе нормальное DELETE-овское.
Конечно проблема не сильно страшная, но неприятно.
Можно ли избежать подобного эффекта?

Старый 24.04.2007, 14:51
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
У меня keyCode: 255 keyAscii: 0 не выводится
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Aug 2006
Адрес: Нижний Тагил
Сообщений: 48
Цитата:
Сообщение от iNils
У меня keyCode: 255 keyAscii: 0 не выводится
А у тебя NumLock включен?
Нашёл сейчас странную особенность:
NumLock-овский Delete всегда работает нормально (и в режиме точки и в режиме Del).
А вот обычный Delete при включенном NumLock работает как я описывал выше, а при выключенном - нормально (keyCode: 255 keyAscii: 0 не выводится).

Но по-моему никакой связи между DELETE и NumLock не существует или я ошибаюсь?


Последний раз редактировалось KoLar; 24.04.2007 в 21:28.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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