Flash CS4如何使用htmlText标签?

3

哇,这个真的很奇怪。

我有以下设置:

舞台上有两个文本框,一个使用Arial字体普通样式,另一个使用Arial字体粗体样式,都已嵌入。然后我有另一个文本框,我像这样设置它:

tb.htmlText = "Test <b>Test</b>";

由于某些原因,加粗文本未能以粗体显示,而是以普通字重显示。我已经尝试将字体嵌入库中,使用 [Embed] 元标记,甚至使用 CSS 强制设置 fontFamily。奇怪的是,我可以使用 Font.enumurateFonts 方法查看两种字体都已嵌入,但 textfield 拒绝在 < b > 标签内使用粗体版本。
有人告诉我这是 Mac 上 Flash CS4 的问题,并且在 PC 上可以正常工作。然而,我不相信这是真的。毕竟 Adobe 应该早就解决了这个问题,对吧?
如果您能提供任何帮助,我将不胜感激。
4个回答

6

您需要在字体列表中拥有“bold”字体(嵌入同一文本字段或其他文本字段中):

var fonts:Array =  ( Font.enumerateFonts() );
for each( var fo in fonts ){
   trace ( fo.fontName ,":", fo.fontStyle )
}

我认为,如果您将字体样式设置为加粗,它应该可以正常工作。 以下是一种解决方案:

var css:StyleSheet = new StyleSheet()
css.setStyle( "bold" , { fontFamily:"Myriad Pro Bold" } ) // you can catch the fontname in the list that was printed by the code above...
txtfield.styleSheet = css;
txtfield.htmlText = "regular or<bold>bold font</bold>."

0
v = v.split('<b>').join('<FONT FACE="Arial Bold">');
v = v.split('</b>').join('</FONT>');
textfield.htmlText = v;

并使用您的字体


0

来自Adobe:

加粗的b标记将文本呈现为粗体。如果您使用嵌入式字体,则必须有粗体字体可用于该字体,否则不会显示任何文本。如果您使用希望驻留在用户本地系统上的字体,则其系统可能会近似一个粗体字体(如果不存在),或者替换正常字体面而不是粗体字体。

尝试使用具有粗体字体的嵌入式字体进行测试。b标记受支持。


0

如果您有一个带有字体系列的动态文本字段,比如 "Abc",并且您已经嵌入了 Abc 的常规和粗体字体以供导出(它们将在库中列出),则仍然需要“强制” Flash 为运行时也导出粗体字体。

如果您只有使用嵌入式 Abc 常规字体的文本字段,并且您使用 and 设置了该文本字段的 htmlText,在显示为普通文本时,Flash 可能会跳过嵌入 Abc 粗体字体用于运行时,因为它没有看到它在任何文本字段中使用。

您可以通过在场景外某个地方放置一个带有嵌入 Abc 粗体字体的空文本字段来强制 Flash 也包含粗体字体用于运行时。

使用 queryt 的代码,字体列表应该包括嵌入的粗体字体,并在您的文本字段中正确显示。


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