AS3文本字段无法仅在选定文本上使用ColorPicker选择颜色

时间:2011-09-06 21:55:39

标签: flash flex actionscript-3 textfield color-picker

我正在创建一个文本编辑器,我希望用户只能选择部分文本字段并更改颜色。我遇到的问题是ColorPicker获得了焦点(我猜)并且文本域失去了它的“选择”。

所有文本编辑示例都显示整个文本字段更改颜色。这不完全是我想要的。

任何帮助/见解都将不胜感激。

1 个答案:

答案 0 :(得分:1)

找出导致文本字段选择丢失的原因(例如,是否可以点击颜色选择器组件?)。然后在发生之前从文本字段中获取selectionBeginIndexselectionEndIndex,并将其存储在持久性(例如类成员)变量中。

当用户选择颜色时,使用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;