使用htmlText Flash CS4 <b>标记
哇,这个真的很奇怪。
我有以下设置:
舞台上的两个文本框以Arial正常和Arial粗体显示,均嵌入。 然后我有另一个文本框,我设置如下:
tb.htmlText = "Test <b>Test</b>";
出于某种原因,粗体文本不显示为粗体,而是显示为常规重量。 我试图在库中嵌入字体,使用[Embed]元标记,甚至使用CSS强制fontFamily。 奇怪的是,我可以使用Font.enumurateFonts,并且看到两种字体都已嵌入,但文本字段拒绝使用<b>标签中的粗体版本。
我被告知这是在Mac上使用Flash CS4的问题,它可以在PC上使用。 然而,我拒绝相信这是事实。 Adobe现在肯定会解决这个问题吗?
任何帮助,将不胜感激。
您必须在字体列表中使用“粗体”字体(嵌入在相同或其他文本字段中):
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>."
来自Adobe:
粗体b标记将文字呈现为粗体。 如果您使用嵌入式字体,则粗体字体必须可用于字体或不显示任何文字。 如果您使用您希望驻留在用户本地系统上的字体,则它们的系统可能接近黑体字体(如果不存在),或者它可能会替代正常字体而不是粗体字体。
尝试使用带粗体的嵌入字体。 b标签被支持。
如果你有一个带有字体系列的动态文本框,比如说,“Abc”和嵌入了Abc的Regular以及Abc的粗体用于导出(它们将被列在你的库中),你仍然需要“强制”Flash也为运行时导出粗体。
如果您只有使用嵌入式Abc Regular的文本字段,并且您将该文本字段的htmlText设置为并且它显示为常规文本,则Flash很可能会跳过将Abc Bold嵌入到您的swf运行时,因为它没有看到它在任何文本字段上使用。
您可以强制Flash将粗体显示在运行环境中,方法是将舞台上的嵌入式Abc Bold放置在空白文本框中。
使用queryt的代码,字体列表应该包含嵌入的粗体以及在文本框中正确显示。
链接地址: http://www.djcxy.com/p/2939.html