Отмена выбора элемента управления Flex HTML

#apache-flex #actionscript-3 #air

#apache-flex #actionscript-3 #air

Вопрос:

Я отображаю некоторый HTML-текст в приложении Adobe AIR, который я не хочу, чтобы пользователь мог вырезать и вставлять. Как мне запретить выделение HTML-элемента управления HTML без отключения полос прокрутки. mouseChildren= false работает, но отключает полосы прокрутки, что недопустимо. Прямо сейчас у меня есть:

         <mx:HTML location="http://dexter/preview.html" width="100%" height="100%" id="PreviewArea" x="0" y="0"  tabEnabled="false" tabChildren="false" focusEnabled="false" focusRect="null"/>
  

Но он также не работает должным образом.
Я также пытался наложить отключенный элемент управления прозрачным текстом поверх компонента HTML, но пользователь по-прежнему может переходить на вкладку HTML и использовать элементы управления с клавиатуры для копирования текста в буфер обмена.

Есть какие-нибудь подсказки?

Ответ №1:

Вероятно, вам придется расширить HTML-компонент. Сделайте полосы прокрутки, если это применимо, пригодными для использования, но установите для mouseEnabled, mouseFocusEnabled, mouseChildren и focusEnabled значение false на внутреннем дисплее.

В качестве альтернативы вы могли бы обернуть HTML-компонент в canvas. Установите для компонента HTML его измеренную высоту и измеренную ширину. Установите для компонента HTML значение «непригодный» с вышеуказанными свойствами, но сделайте canvas пригодным для использования.

Разве HTML-компонент не отображает обработанный HTML; не HTML-текст? Если вы отображаете текст HTML, то вы можете использовать TextArea и установить для параметра editable и selectable значение false.