在TLF文本字段上动态翻转wordwrap属性

时间:2011-03-17 19:33:15

标签: actionscript-3 word-wrap tlf

我正在使用Flash CS5和ActionScript 3。

我需要动态地(响应事件)将TLFTextField的wordWrap属性从true翻转为false,反之亦然。我使用旧的TextField类,但我无法使用TLF。

我声明我的字段并将其设置为如此,将wordWrap设置为true:

this.field = new TLFTextField;
field.multiline = true;
field.wordWrap = true;
field.autoSize = TextFieldAutoSize.LEFT;

field.tlfMarkup = my_content;

this.addChild(field);
var myTextFlow:TextFlow = field.textFlow;
myTextFlow.hostFormat = format; //format is a TextLayoutFormat declared earlier
myTextFlow.flowComposer.updateAllControllers();

要更改自动换行,我尝试了以下内容:

field.wordWrap = false;
field.multiline = false;
var myTextFlow:TextFlow = field.textFlow;
myTextFlow.flowComposer.updateAllControllers();

但是这没有效果 - 文字保持包装。谁能告诉我我错过了什么?

提前致谢,

阿曼达

2 个答案:

答案 0 :(得分:2)

将wordwrap更改为false,必须有文本集。 (我需要大约半个小时才能让它工作!)

field.wordWrap = false;
trace(field.wordWrap); // will echo true

以下内容应该有效:

if(field.text == ""){

  field.text = "a";
  field.wordWrap = false;
  field.text = "";

} else {

  field.wordWrap = false;

}

trace(field.wordWrap); // should echo false

答案 1 :(得分:0)

首先,你试过了吗? this.field = new TLFTextField();

你没有括号。

至少值得一看。 (另外我相信这是Beta目前所以有可能出现错误?)

最后,您可以考虑在没有AutoSize的情况下进行测试......有时会导致问题。

很抱歉,对于一个确切的解决方案,我无法提供更多帮助。