xml - 使用 htmlText 嵌入 AS3 字体

标签 xml actionscript-3 embed htmltext italic

我有一个动态文本字段,它使用从 XML 文件加载的 html 文本:

XML:

<someText><![CDATA[I am <i>some</i> text.]]></someText>

如您所见,它使用常规和斜体。我已经将我的字体嵌入到它的所有变体中,每个字形中,但斜体文本没有显示。我的 AS3:

字体变量:private var RegularFont:Font = new myFontRegular();

myFontRegular 使用嵌入对话框嵌入,但设置为常规字体,而不是斜体。

文本字段格式:bodyFormat.font = RegularFont.fontName;

设置文本字段:

bodyField.embedFonts = true;
bodyField.defaultTextFormat = bodyFormat;
bodyField.multiline = true;
bodyField.wordWrap = true;
bodyField.antiAliasType = "advanced";
bodyField.selectable = false;

然后我将文本字段设置为 htmlText 并为其提供内容:

bodyField.htmlText = pageBody;

pageBody 是一个从 XML 提供的变量。

好的,设置完毕,但斜体文本没有显示,我猜这是因为嵌入字体设置为常规字体,而不是斜体。那么我如何在句子的中间使用斜体呢?我在 Google 上搜索并尝试了各种方法将字体直接嵌入代码中,同样的问题。

这对我来说以前工作得很好,我不明白这有什么问题。如果我需要发布更多内容,请告诉我。

谢谢。

最佳答案

最好使用嵌入字体的正确设置,您应该使用familyName来给出字体系列集的名称(斜体、粗体和普通字体是相同的),例如如下:

    [Embed(source="asset/arial.ttf",
        fontFamily = "Arial",
        unicodeRange = "U+0009,    U+00A9,U+00AE,U+00B0,U+00B7,U+00A3,U+00A7,    U+0021-U+002F,    U+003A-U+0040,     U+005B-U+0060,      U+007B-U+007D,       U+00A0,      U+00B4,       U+0030-U+0039,      U+0041-U+005A,      U+0061-U+007A,     U+00B4,U+2032,U+2033,U+2019,U+2013, U+00E9,U+00C9, U+2022, U+2026",
        mimeType="application/x-font-truetype",
        embedAsCFF="false"
        )]
    private var arialImported:Class;
    [Embed(source="asset/arialbd.ttf",
        fontFamily = "Arial",
        fontWeight = "bold",
        unicodeRange = "U+0009,    U+00A9,U+00AE,U+00B0,U+00B7,U+00A3,U+00A7,    U+0021-U+002F,    U+003A-U+0040,     U+005B-U+0060,      U+007B-U+007D,       U+00A0,      U+00B4,       U+0030-U+0039,      U+0041-U+005A,      U+0061-U+007A,     U+00B4,U+2032,U+2033,U+2019,U+2013, U+00E9,U+00C9, U+2022",
        mimeType="application/x-font-truetype",
        embedAsCFF="false"
        )]
    private var arialBoldImported:Class

那么它应该可以工作,例如bodyFormat.font = "myFontFamilyName";,但我觉得您还需要应用样式表对象并用 P 标签包装所有内容(内容)

var m_oStylesheet = new StyleSheet();
m_oStylesheet.parseCSS("P{font-family:myFontFamilyName; }");
bodyField.styleSheet = m_oStylesheet;

您也可以看看这个entry about StyleSheet

最诚挚的问候

关于xml - 使用 htmlText 嵌入 AS3 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12279029/

相关文章:

xml - 数据库 XPath 查询

actionscript-3 - 如何在actionscript-3中应用声音失真?

actionscript-3 - 游戏开发中的 HTML 与 ActionScript3?

linux - 如何使用 GTK、XLib 或类似工具将一个程序嵌入到另一个程序中?

在一个巨大的目录中转换 XML 时出现 java.lang.OutOfMemoryError

java - 将 DOCX 转换为 XML 文件

xml-fo pdf 表 : 'colspan' when the number of columns is dynamic

actionscript-3 - 在 Actionscript 中使用图形

iframe - Facebook登录和youtube嵌入iframe冲突

iOS 嵌入视频,视频在另一个 View 中仍然播放