Изменить цвет выделения в TextArea (или других текстовых компонентах) в Flex 3 - PullRequest
1 голос
/ 31 мая 2011

Возможно ли, что такую ​​простую вещь невозможно изменить.Я искал это, но не мог найти ничего полезного.

Ответы [ 2 ]

1 голос
/ 17 января 2012

Это так просто:

  txtareaDisplay.setStyle("focusedTextSelectionColor", 0XFF0000);

в selectionChange событие TextArea. Попробуй.

1 голос
/ 31 мая 2011
var textFormat:TextFormat = textField.getTextFormat();

textFormat.color = 0xFFFFFF // or whatever

textField.setTextFormat(textFormat, textField.selectionBeginIndex, selectionEndIndex);

Это изменит цвет и почти все, что вы хотите в области выделенного текстового поля. Обратите внимание, что мой код был напечатан на макушке, поэтому вам придется перепроверить орфографию и т. Д., Но это сработает. Подробнее смотрите здесь:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#setTextFormat()

Как примечание, текстовые поля flash довольно глупы, когда вы имеете дело с индексами выбора. И самый первый, и самый последний индекс в текстовом поле читаются как -1. Поэтому, если у вас есть выделенный текст, который идет от индекса N до конца текста в textField ... параметры для вашего setTextFormat будут: (textFormat, N, -1), что вызовет ошибку диапазона. Вам нужно проделать определенную работу по обнаружению сценариев этого типа и обойти их. Одним из возможных решений может быть проверка selectionBeginIndex, затем selectionEndIndex, проверка того, равен ли один из них -1, и если да, то действовать соответствующим образом. Например, если selectionEndIndex равен -1, то вы захотите привести переменную и установить значение textField.length - 1, чтобы вы могли использовать эту переменную в качестве второго параметра и, таким образом, избежать ошибки диапазона.

...