Flash CS4 <b>使用htmlText标记

Han*_*pan 3 flash actionscript-3 flash-cs4

哇,这个真的很奇怪.

我有以下设置:

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

tb.htmlText = "Test <b>Test</b>";
Run Code Online (Sandbox Code Playgroud)

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

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

任何帮助,将不胜感激.

小智 6

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

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

我认为,如果你将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>."
Run Code Online (Sandbox Code Playgroud)