0

我们在 MovieClips 中有一个包含一堆 TextField 的库。在运行时,我们创建其中一个实例,在其上运行 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,那么一切正常,但显然文本字段没有得到库中的前导和字母间距。这是一个问题,因为我需要这两个属性。有人知道解决这个问题的方法吗?

4

1 回答 1

0

您可能需要改为从 TLTFTextfield 获取 TextLayerFormat:

这是有关 TextLayerFormat 的文档。

另一种选择是获取内容属性,并使用 ElementFormat 来访问包含这些属性的格式化对象

于 2011-11-07T12:55:50.597 回答