Выясните, что вызывает потерю выделения в текстовом поле (например, может ли это быть щелчок по компоненту палитры цветов?). Затем получите selectionBeginIndex
и selectionEndIndex
из текстового поля до того, как это произойдет, и сохраните его в постоянной переменной (например, член класса).
Когда пользователь выбирает цвет, используйте setTextFormat()
для изменения цвета, передавая сохраненные начальный и конечный индексы.
Быстрый пример:
var beginIndex : uint;
var endIndex : uint;
function beforeFocusIsLost() : void {
beginIndex = myTextField.selectionBeginIndex;
endIndex = myTextField.selectionEndIndex;
}
function whenColorIsPicked() : void {
var tf : TextFormat;
tf = new TextFormat();
tf.color = myColor;
myTextField.setTextFormat(tf, beginIndex, endIndex);
}
Если вы хотите сохранить выделение, вы также можете сбросить его после того, как цвет был установлен, используя метод TextField.setSelection () .
РЕДАКТИРОВАТЬ: обратите внимание, что если выделение просто скрыто, то, возможно, вы ищете просто TextField.alwaysShowSelection . Попробуйте установить значение true в текстовом поле, и все вышеперечисленное может оказаться излишним.
myTextField.alwaysShowSelection = true;