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

6
我已经谷歌搜索和阅读了许多关于这个问题的不同主题,但仍然不能解决我的问题。 我在一个影片剪辑中有这个动态文本字段,并嵌入了大写字母、小写字母和数字。我导出了那个影片剪辑,然后在我的类中使用它,并从xml加载数据。
然而,在我嵌入粗体字体后,它停止了显示来自xml的数据。如果我使用常规字体,就没有问题。 然后我创建了一个字体符号并将粗体字体添加到库中,但仍然没有任何效果。
有人知道如何解决这个问题吗?
谢谢。
4个回答

2
最简单的解决方法是创建一组屏幕外的文本框。每个文本框将处理您需要的单个字体和字重组合的嵌入。例如,如果您需要单个字体的常规、粗体、斜体和粗斜体,则会有4个文本框-每个文本框都打开了嵌入,并选择所需字符。
然后,您可以简单地为任何其他文本框打开字体嵌入,它就能够使用该字体的所有四种样式。

2
我尝试将每个实例都更改为嵌入式字体,但没有成功。然而,在Adobe论坛上我找到了一个解决方案:http://forums.adobe.com/thread/716363。使用myTextFieldInstance.htmlText而不是myTextFieldInstance.text,并在赋值期间指定"<b>" + yourStringValue + "</b>"。虽然有些笨拙,但这是一个简单的解决办法。

1

我假设您正在使用最近版本的Flash IDE。

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

如果这对您没有用,请考虑使用[embed] MXML标记(仅适用于cs4)嵌入字体。Lee Brimelow在这种技术上有一个很棒的视频教程,您可以在gotoAndLearn观看它。

我以前遇到过嵌入字体的问题,而嵌入标记为我解决了这个问题。看看我的帖子是否有所帮助。


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";

这不是一个完美的方式来构建强大的项目,但它可以工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接