在AS3 Flash动态字段中嵌入粗体字体

时间:2009-07-01 05:34:47

标签: flash actionscript-3 fonts embed

我已经用Google搜索并阅读了很多与此问题相关的不同主题,但仍然无法解决我的问题。 我在动画片段中有这个动态文本字段,我嵌入了大写,小写和数字。我出口了 movieclip,然后在我的类中使用它,它从xml加载数据。

然而,在我嵌入粗体字后,它停止显示来自xml的数据,如果我使用常规,那很好。 然后我创建了一个字体符号并在库中添加粗体字体,它仍然没有给我任何东西。

有谁知道如何解决这个问题?

感谢。

4 个答案:

答案 0 :(得分:2)

解决此问题的最简单方法是在屏幕外创建一组文本字段。每个字段都将处理您需要的单个字体和重量组合的嵌入。因此,例如,如果您需要常规,粗体,斜体以及单个字体的粗体和斜体,那么您将拥有4个文本字段 - 每个字段都打开了嵌入,以及您需要选择的字符。

然后你可以简单地为任何其他文本字段打开字体嵌入,它将能够使用所有四种样式(该字体)。

答案 1 :(得分:2)

我尝试将每个实例更改为嵌入式版本字体但没有成功。但是,我可以在这里使用Adobe论坛上建议的解决方案:

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

使用myTextFieldInstance.text而不是使用myTextFieldInstance.htmlText,并在分配期间指定"<b>" + yourStringValue + "</b>"。虽然最大限度地提供了解决方案,但这是解决问题的简单方法。

答案 2 :(得分:1)

我假设您使用的是最新版本的Flash IDE。

听起来像是冲突。如果该影片中的另一个文本字段具有相同的字体和重量但未设置为嵌入字体,则会出现静默(和烦人)冲突。解决方法是确保所有文本字段(包括静态和输入)都设置为字体列表中带有星号的字体,即Arial *。

如果这不适合你,我建议你应该使用[embed] MXML标签(仅限cs4)嵌入字体。 Lee Brimelow有一个关于这种技术的精彩视频教程,你可以在gotoAndLearn观看它。

之前我遇到嵌入字体的问题,embed标签为我修复了它。看看my post,看看它是否有帮助。

答案 3 :(得分:0)

应用粗体类型字体肯定存在问题。

如果您稍后在代码中的某处动态更新文本,则字体不会设置为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";

对于健壮的项目来说,这不是一个完美的方式,但它确实有效。