2009-07-01 83 views
6

我已經使用Google並閱讀了許多與此問題有關的不同主題,但仍無法解決我的問題。 我在動畫片段中有這個動態文本字段,並且我嵌入了大寫字母,小寫字母和數字。我導出了這個動畫片段,然後在我的課堂上使用它,它從XML加載數據。在AS3中嵌入粗體字體Flash動態字段

但是,在我嵌入了粗體字體後,如果我使用普通的話,它會停止顯示來自xml的數據,這很好。 然後我創建了一個字體符號並在庫中添加了粗體字體,但它仍然不給我任何東西。

有誰知道如何解決這個問題?

謝謝。

回答

2

解決此問題的最簡單方法是在屏幕外創建一組文本框。每個字段將處理您需要的單個字體和重量組合的嵌入。因此,例如,如果您需要常規,粗體,斜體以及單一字體的粗體和斜體,那麼您將擁有4個文本區域 - 每個區域都打開了嵌入功能,並且您需要選擇所需的字符。

然後,您可以簡單地打開任何其他文本字段的字體嵌入,它將能夠使用所有四種樣式(該字體)。

1

我假設您使用的是最新版本的Flash IDE之一。

聽起來像是一場衝突。如果該電影中的另一個文本字段具有相同的字體和重量,但未設置爲嵌入字體,則會產生沉默(和惱人的)衝突。解決方案是確保所有文本字段(包括靜態和輸入)都設置爲字體列表中帶有星號(即Arial *)的字體。

如果這不能解決你的問題,我建議你應該使用[embed] MXML標籤(僅限於cs4)嵌入字體。 Lee Brimelow在這個技巧上有一個很棒的視頻教程,你可以在gotoAndLearn看它。

我在嵌入字體之前遇到了一些麻煩,並且嵌入標籤爲我解決了這個問題。看看my post,看看它是否有幫助。

2

我試着改變每個實例到嵌入式版本的字體沒有成功。但是當時的我,能夠使用在Adobe論壇這裏提出的解決方案:

http://forums.adobe.com/thread/716363

而不是使用myTextFieldInstance.text的,使用myTextFieldInstance.htmlText和分配過程中指定"<b>" + yourStringValue + "</b>"。儘管最大程度地克服了這個問題,但這是一個簡單的解決方案。

0

應用Bold字體時肯定存在問題。

如果稍後在代碼中的某處動態更新文本,字體不會設置爲帶有以下代碼的BOLD。

var myTextFormat:TextFormat = new TextFormat(); 
myTextFormat.font = "Arial"; 
myTextFormat.bold = true; 
myTextField.setTextFormat(myTextFormat); 

// 
myTextField.text = "some dynamic text"; 

相反,您需要在每次更新文本時應用文本格式。

var myTextFormat:TextFormat = new TextFormat(); 
myTextFormat.font = "Arial"; 
myTextFormat.bold = true; 

// 
myTextField.text = "some dynamic text"; 
myTextField.setTextFormat(myTextFormat); 

不過,我一般將它設置爲默認字體,如下圖所示,

var myTextFormat:TextFormat = new TextFormat(); 
myTextFormat.font = "Arial"; 
myTextFormat.bold = true; 
myTextField.defaultTextFormat = myTextFormat; 

// 
myTextField.text = "some dynamic text"; 

不爲強有力的項目一個完美的方式,但它的工作原理。