我有一个动态文本字段,它使用从XML文件加载的html文本:
XML:
<someText><![CDATA[I am <i>some</i> text.]]></someText>
正如您所看到的,这使用了正则和斜体。我已经将我的字体嵌入了它的所有变体中,每一个字形,但斜体文本没有显示。我的AS3:
字体var: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提供的var。
好的,设置好了,但斜体文本不会显示,我想这是因为嵌入的字体设置为常规字体,而不是斜体。例如,我怎么能在句子的一半使用斜体呢?我在谷歌上搜索并尝试了各种方法将字体直接嵌入代码中,同样的问题。
这以前对我来说很好,我不明白这是怎么回事。如果我需要发布更多信息,请告诉我。
谢谢。
最好使用嵌入字体的正确设置,您应该使用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;
你也可以看看这个条目关于样式表
向致以最良好的问候