Flash CS4 <b>使用htmlText标记</b>

时间:2010-03-02 14:44:36

标签: flash actionscript-3 flash-cs4

哇,这个真的很奇怪。

我有以下设置:

舞台上有两个文本字段,Arial normal和Arial粗体,都嵌入了。然后我有另一个文本字段,我设置如下:

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

由于某种原因,粗体文本不显示为粗体,而是显示为常规体重。我尝试使用[Embed]元标记在库中嵌入字体,甚至使用CSS强制使用fontFamily。奇怪的是,我可以使用Font.enumurateFonts并看到两种字体都是嵌入式的,但是文本字段拒绝在&lt;内部使用粗体版本。 b>标签

我被告知这是Mac上的Flash CS4的一个问题,它可以在PC上运行。但是,我拒绝相信这种情况。当然,Adobe现在已经解决了这个问题吗?

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:6)

你必须在字体列表中设置'粗体'字体(嵌入在相同或其他文本字段中):

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

我认为如果你将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>."

答案 1 :(得分:0)

来自Adobe:

粗体b标记将文本显示为粗体。如果使用嵌入字体,则字体必须使用粗体字体,否则不显示任何文本。如果您使用预期驻留在用户本地系统上的字体,则如果不存在,系统可能会使用粗体字体,或者它可能会替换正常字体而不是粗体。

尝试使用带粗体的嵌入字体。支持b标记。

答案 2 :(得分:0)

如果你有一个带有字体系列的动态文本字段,让我们说“Abc”,你已经嵌入了Abc的Regular以及Abc的Bold for export(它们将列在你的库中),你还需要“强制” “Flash也可以为运行时导出粗体。

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

您可以通过放置和清空带有嵌入式Abc Bold的文本字段来强制flash为运行时添加粗体。

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

答案 3 :(得分:0)

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

并使用你的字体