我在格式化文本字段时遇到问题。我有按钮+和 - 文字大小。 TextField类具有用于新文本格式的属性defaultTextField。当我更改defaultTextFormat size属性时 - 整个文本的大小更改。我到处寻找解决方案,但我还没找到它。文本编辑器WISWYG(我不确定名称是否正确)在我遇到问题时只更改defaultTextFormat属性。也许是因为flash和AIR之间的区别(flash上的编辑器和AIR上的我的应用程序)。请帮忙。
这里设置/获取TextFormat的代码:
public function set selectionTextFormat(value:TextFormat):void {
var begin:int = _textField.selectionBeginIndex;
var end:int = _textField.selectionEndIndex;
if (begin == end)
{
_textField.defaultTextFormat = value;
}
else
{
_textField.setTextFormat(value, begin, end);
}
}
public function get selectionTextFormat():TextFormat
{
var begin:int = _textField.selectionBeginIndex;
var end:int = _textField.selectionEndIndex;
if (begin == end)
{
return _textField.defaultTextFormat;
}
return _textField.getTextFormat(begin, end);
}
更改格式的代码:
private function setFormat(property:String, value:*):void
{
var tf:TextFormat = TextFormatter.TF.selectionTextFormat;
tf[property] = value;
TextFormatter.TF.selectionTextFormat = tf;
}
编辑:DROPBOX上的图像用于解释: https://dl.dropboxusercontent.com/u/237572639/Capture.PNG
编辑2:我需要的图像(代码绝对相同!)(WYSIWYG编辑器) https://dl.dropboxusercontent.com/u/237572639/WYSIWYG.PNG答案 0 :(得分:0)
要更改以后输入的所有文字,您可以尝试使用此代码(结果可见here):
var text_input:TextField = new TextField();
text_input.border = true;
text_input.type = 'input';
text_input.text = 'hello world!';
addChild(text_input);
var new_fmt:TextFormat = new TextFormat();
btn_color.addEventListener(
MouseEvent.CLICK,
function(e:MouseEvent):void {
// set the new text color
new_fmt.color = 0xFF0000;
}
)
btn_size.addEventListener(
MouseEvent.CLICK,
function(e:MouseEvent):void {
// set the new text size
new_fmt.size = int(txt_size.text)
}
)
text_input.addEventListener(Event.CHANGE, function(e:Event):void {
text_input.setTextFormat(new_fmt, text_input.caretIndex-1);
})
当然,这只是一种做你想做的事情的方式,你必须根据自己的需要进行调整并改进它。