2011-11-07 68 views
0

我们在MovieClips中有一堆带有一堆TextField的库。在运行时,我们创建其中的一个实例,在其上运行getTextFormat以获取格式,然后在代码中创建一堆TextField并对它们运行setTextFormat以使它们具有相同的格式。Flash - setTextFormat在TLFTextField上崩溃

我试图做同样的事情,但与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。

Property lineHeight value -2147483648 is out of range 

Property trackingRight value NaN is out of range 

如果我设置textFormat.leading和textFormat.letterSpacing为null之前,我跑调用setTextFormat,然后一切正常,但显然文本字段:此运行时text.setTextFormat(的textFormat)分别产生以下2个运行时错误不要得到图书馆的领先和字母间距。这是一个问题,因为我需要这两个属性。任何人都知道解决这个问题?

+0

什么是“classFromLib() “?它是一个movieclip或TLFTextField?你可以尝试设置textFormat = text.defaultTextFormat()? –

+0

抱歉,我将代码快捷化了一下,假设文本是由新的classFromLib()创建的MovieClip的有效TLFTextField子项。我尝试了你所说的,但它不起作用,text.defaultTextFormat中的所有属性似乎都是默认属性,而不是TLFTextField的实际属性。例如它有Times New Roman作为字体,这是错误的。然而,我确实解决了“领先”属性的问题。在Flash CS5中设置Leading时,可以使用pt或%。 %似乎会导致getTextFormat期间得到min int的值,但是使用pt来修正它。 –

回答