#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.