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

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

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

Регистрация: Feb 2009
Сообщений: 141
По умолчанию Как запретить копировать текст в TextFieldType.INPUT

Необходимо запретить копировать текст в TextFieldType.INPUT
Выделение текста доступно, доступно изменение текста в поле, но необходимо запретить его копировать.
Т.е CTRL + C и выбор в контекстном меню пункта "Копировать" не должны приводить к размещению информации в буфере обмена.

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

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
Попробуйте слушать ctrl+c и по нажатию копировать в буффер пустую строку.

Код AS3:
System.setClipboard("");
__________________
Убейте меня!

Старый 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);
		}
Я перехватываю нажатие правой кнопки, тем самым блокируя контекстное меню и при нажатии любой клавиши, если существует выделенная область, отменяю ее.
Это несколько меняет логику работы с выделенной областью, но полностью решает задачу. В моем случае это допустимо.

Старый 23.06.2013, 19:35
WisP вне форума Посмотреть профиль Отправить личное сообщение для WisP Найти все сообщения от WisP
  № 4  
Ответить с цитированием
WisP

Регистрация: Sep 2003
Сообщений: 28
Vreden, остается возможность скопировать выделенный текст через меню AIR/браузера.

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

Регистрация: Feb 2009
Сообщений: 141
Цитата:
Сообщение от WisP Посмотреть сообщение
Vreden, остается возможность скопировать выделенный текст через меню AIR/браузера.
Не понял, это как?

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

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
Можно вот как сделать.

Код AS3:
stage.addEventListener( Evetn.DEACTIVATE, deactivateHandler );
 
function deactivateHandler( event:Event ):void {
     System.setClipboard("");
}
При исчезновении фокуса с флешки, убивать clipboard.
Возможно сработает.
__________________
Убейте меня!

Старый 23.06.2013, 21:17
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 7  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
У текст филда есть событие вставки символов, если эти символы === содержимому буфера обмена - отменяем вставку.
__________________
Дети не должны знать о своих родителях

Старый 24.06.2013, 15:56
Vreden вне форума Посмотреть профиль Отправить личное сообщение для Vreden Найти все сообщения от Vreden
  № 8  
Ответить с цитированием
Vreden
 
Аватар для Vreden

Регистрация: Feb 2009
Сообщений: 141
Цитата:
Сообщение от джонатан Посмотреть сообщение
Можно вот как сделать.
При исчезновении фокуса с флешки, убивать clipboard.
Возможно сработает.
Не сработает, работать с буфером обмена можно только по событию действия пользователя.

Цитата:
Сообщение от Tails Посмотреть сообщение
У текст филда есть событие вставки символов, если эти символы === содержимому буфера обмена - отменяем вставку.
Тут я ничего не понял.

Старый 25.06.2013, 12:06
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 9  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Vreden,
Событие textInput:

Цитата:
Flash Player отправляет событие textInput, когда пользователь вводит один или несколько символов текста. Это событие может генерироваться различными методами ввода текста, включая стандартную клавиатуру, редакторы ввода текста (IME), системы распознавания голоса и речи и даже просто вставкой обычного текста без форматирования или информации о стилях.
Так вот, если вставляемые символы это содержимое буфера обмена - отменяете вставку.
__________________
Дети не должны знать о своих родителях

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

Регистрация: Feb 2009
Сообщений: 141
Цитата:
Сообщение от Tails Посмотреть сообщение
Так вот, если вставляемые символы это содержимое буфера обмена - отменяете вставку.
Я не понимаю, зачем мне отменять вставку в текстовое поле, когда мне нужно запретить копирование?

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

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

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


 


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


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