Показать сообщение отдельно
Старый 23.06.2013, 19:24
Vreden вне форума Посмотреть профиль Отправить личное сообщение для Vreden Найти все сообщения от Vreden
  № 3  
Ответить с цитированием
Vreden
 
Аватар для Vreden

Регистрация: Feb 2009
Сообщений: 141
Цитата:
Сообщение от джонатан Посмотреть сообщение
Попробуйте слушать ctrl+c и по нажатию копировать в буффер пустую строку
Копирование в буфер происходит после, поэтому никакого эффекта это не имеет. К тому же перехват CTRL+C и CTRL+X мало эффективен, т.к. грамотный пользователь может переопределить нажатие клавиш для этих функций.

Но решение нашлось:

Код AS3:
		......
			__editText.addEventListener(KeyboardEvent.KEY_DOWN, __keyDown, false, 0, true);
			__editText.addEventListener(MouseEvent.RIGHT_MOUSE_DOWN, __rightDown);
		}
 
		private function __rightDown(e:MouseEvent):void{}
 
		private function __keyDown(e:KeyboardEvent):void
		{
			if (__editText.selectionBeginIndex < __editText.selectionEndIndex)
				__editText.setSelection(__editText.selectionBeginIndex, __editText.selectionBeginIndex);
		}
Я перехватываю нажатие правой кнопки, тем самым блокируя контекстное меню и при нажатии любой клавиши, если существует выделенная область, отменяю ее.
Это несколько меняет логику работы с выделенной областью, но полностью решает задачу. В моем случае это допустимо.