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

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

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

Регистрация: Jun 2002
Адрес: неустойчивое
Сообщений: 30
По умолчанию ctrl-c/v/x/z - реально ли поймать?

Товарищи,

Если в 7-ке при нажатом ctrl ещё можно было услышать up-event "опасной" комбинации (кое-как получалось эмулировать эти шорткаты для самописных редакторов), то, начиная с 8-ки даже up-event не проходит.
Может кто сталкивался - можно ли что-нить сделать?

Заранее спасибо.

Старый 03.04.2007, 10:48
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 2  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
я ловил
вот у silin неплохой класс
http://www.silin.fatal.ru/AS2/KeyEve...atcher.as.html
__________________
"We Are The Champions My Friends!" Queen

Старый 03.04.2007, 16:10
MyXus вне форума Посмотреть профиль Отправить личное сообщение для MyXus Посетить домашнюю страницу MyXus Найти все сообщения от MyXus
  № 3  
Ответить с цитированием
MyXus
 
Аватар для MyXus

Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
или ответ мог быть таким: "Key.isDown" -)

Старый 04.04.2007, 22:24
Корнхолио вне форума Посмотреть профиль Отправить личное сообщение для Корнхолио Найти все сообщения от Корнхолио
  № 4  
Ответить с цитированием
Корнхолио
 
Аватар для Корнхолио

Регистрация: Jun 2002
Адрес: неустойчивое
Сообщений: 30
Ага, согласен. Для fp8/as2 шорткат эмулируется просмотром по EnterFrame Key.isDown - комбинаций.
Только у меня проблема в as3 Там в принципе нет статического места, где всегда можно узнать состояние клавиши. Всё привязано к KeyboardEvent, а он как раз и не приходит.

В начале я писал тему в ActionScript3, просто переместили потом

Если есть мысли, что можно сделать в as3 - буду очень благодарен.

Старый 04.04.2007, 22:55
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Корнхолио
В начале я писал тему в ActionScript3
Это не врите. Тема была размещена в разделе «AS для профи».
Переезжаем в AS3, раз раскрылись такие «подробности».

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

Регистрация: Jun 2002
Адрес: неустойчивое
Сообщений: 30
Да я не вру
Просто мог забыть или не обратить внимание.

Старый 05.04.2007, 01:49
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Корнхолио
Просто мог забыть или не обратить внимание.
Логи все помнят. Постите в следующий раз в нужном разделе.

Старый 05.04.2007, 14:49
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 8  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
Эти комбинации ловятся по KeyboardEvent.KEY_UP
Например, см. статью по созданию редактора
http://www.timezero.ru/storm/editor5.html#a07
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 06.04.2007, 15:54
Корнхолио вне форума Посмотреть профиль Отправить личное сообщение для Корнхолио Найти все сообщения от Корнхолио
  № 9  
Ответить с цитированием
Корнхолио
 
Аватар для Корнхолио

Регистрация: Jun 2002
Адрес: неустойчивое
Сообщений: 30
Я начал ветку с утверждения, что такой подход не работает.

В любом случае ты не совсем верно ловишь ctrl-комбинацию. Ты рассматриваешь только случай
1. "ctrl-down -> key-down -> key-up -> ctrl-up"
, когда подавляющее большинство людей юзает
2. "ctrl-down -> key-down -> ctrl-up -> key-up".
Идеальное решение - обработать оба варианта. Обработка только первого объективно практически не работает (попробуйте сами медленно проделать эту спиномозговую операцию в домашних условиях ).

Довольно просто сравнить поведение для разных версий плеера (нажимаем ctrl-c):
1) fp7
Код:
Key.addListener(_root);
onKeyUp = function (){trace ("keyUp: " + Key.getCode())}
onKeyDown = function (){trace ("keyDown: " + Key.getCode())}
output:
1.
Код:
keyDown: 17
keyUp: 67
keyUp: 17
2.
Код:
keyDown: 17
keyUp: 17
keyUp: 67
То есть оба варианта обрабатываются при получении ап-эвента: ctrl или нажат, или был отпущен сразу перед текущей клавишей.

2) fp8. Код аналогичен fp7
output:
1.
Код:
keyDown: 17
keyUp: 17
2.
Код:
keyDown: 17
keyUp: 17
То есть уже в 8-ке, в отличие от 7-ки, "дырку" с up-эвентами опасных комбинаций закрыли для обоих случаев.

3) fp9
Код:
package {
	import flash.display.Sprite;
	import flash.text.TextField;
	import flash.events.KeyboardEvent;
	import flash.events.Event;

	public class as_test extends Sprite
	{
		public function as_test()
		{
			stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey);
			stage.addEventListener(KeyboardEvent.KEY_UP, onKey);
			
			addEventListener(Event.ENTER_FRAME, function (e:Event):void
			{
				stage.focus = stage;
			});
		}
		private function onKey (e:KeyboardEvent):void
		{
			trace (e.type, e.keyCode);
		}
	}
}
output:
1.
Код:
keyDown 17
keyUp 67
2.
Код:
keyDown: 17
keyUp: 17
То есть обработать мы можем только первый вариант, который практически ничего нам не даёт

Старый 06.04.2007, 15:57
Корнхолио вне форума Посмотреть профиль Отправить личное сообщение для Корнхолио Найти все сообщения от Корнхолио
  № 10  
Ответить с цитированием
Корнхолио
 
Аватар для Корнхолио

Регистрация: Jun 2002
Адрес: неустойчивое
Сообщений: 30
Хотя на flash-mx.ru Делимитер подсказал мега-решение написать "слушателя" на as2/fp7, загрузить в as3-приложение и настроить LocalConnection между ними
Не очень красиво, зато работает и является решением проблемы.

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

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

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


 


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


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