2009-07-01 81 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"; 

不为强有力的项目一个完美的方式,但它的工作原理。