Flash - setTextFormat在TLFTextField上崩溃

时间:2011-11-07 00:45:29

标签: flash actionscript-3 textfield tlf textformat

我们在MovieClip中有一堆TextFields的库。在运行时,我们创建其中一个的实例,在其上运行getTextFormat以获取格式,然后在代码中创建一堆TextField并在它们上运行setTextFormat以赋予它们相同的格式。

我正在尝试用TLFTextFields做同样的事情。我有以下内容:

var text:TLFTextField = new classFromLib();
text.selectable = true; //required for getTextFormat to work, flash bug
textFormat = text.getTextFormat();
text.selectable = false; // set it back to false

现在的问题是textFormat.leading是-2147483648,而textFormat.letterSpacing是NaN。运行text.setTextFormat(textFormat)时,这会分别产生以下2个运行时错误:

Property lineHeight value -2147483648 is out of range

Property trackingRight value NaN is out of range

如果我在运行setTextFormat之前将textFormat.leading和textFormat.letterSpacing设置为null,那么一切正常,但显然文本字段没有获得库中的那个的前导和字母间距。这是一个问题,因为我需要这两个属性。有人知道解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可能需要从TLTFTextfield获取TextLayerFormat:

Here's the documentation on the TextLayerFormat.

另一个选项是获取内容属性,以及包含这些属性的use ElementFormat to get access that the formatting object