2011-11-07 69 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來修正它。 –

回答