FlashCS5嵌入字体htmlText粗体:如何使用TLFTextField和TextConverter?

时间:2011-10-06 16:34:31

标签: flash actionscript-3 flash-cs5 textfield tlf

我在这个问题上已经被困了很长时间,已经多次提出并讨论过了。任务很简单,真的不应该花费它已经拥有的疯狂时间:在带有嵌入字体的文本字段中加粗一些单词(Arial除外)。

b标签在使用Flash似乎本身识别粗体(Arial等)的字体时才起作用 - 但我使用的字体有4种权重:常规,中等,粗体和黑色。我需要在中等重量的正文中使用黑色重量来表示粗体字。

我确实进行了几十次测试,都没有使用“经典”文本字段,为每个重量嵌入一次字体并使用htmlText:在嵌入对话框中尝试了每个设置,标签为b,span,em - 使用TextFormat(粗体,字体)或StyleSheet(fontWeight,fontStyle,fontFamily)......

结论:没有办法在单个textField中设置2种不同的嵌入字体。

问题肯定与嵌入字体有关,通过以下调试助手函数确认:

/**
 *  Debug helper: trace embedded fonts
 */
function trace_embedded_fonts():void
{
    var fonts:Array = Font.enumerateFonts();
    for ( var i:int = 0; i < fonts.length; i++ )
       trace( fonts[ i ].fontName + " - " + fonts[ i ].fontStyle + " - " + fonts[ i ].fontType );
}

/**
 *  Debug helper: Trace format
 */
function trace_classic_textfield_format( tf:TextField ):void
{
    trace( "trace_tlf_textfield_format( " + tf.name + " )" );
    trace( "  font = " + tf.getTextFormat().font );
}

分别输出Maven Pro - regular - embedded(只是这一行,即使我嵌入了4倍的字体,每个重量一次 - 是的:我仔细命名它们,我尝试导出动作脚本,在DF3和DF4中,以及也没有导出)和font = Maven Pro在场景上的所有textField实例上,无论哪种样式应用于它们(也尝试选择嵌入字体 - 最后用* - 和系统字体)

简而言之,字体很奇怪,但我无能为力。

所以我的问题与新的文本布局框架(TLFTextField)有关:可以用它来实现吗?

文本是从XML加载的,包含简单的标签,如em,b等,但是不能将它们重写为流标签。

我尝试通过TextConverter类进行转换 - 例如var tf:TextFlow = TextConverter.importToFlow(hyperText, TextConverter.TEXT_FIELD_HTML_FORMAT); - cf. http://help.adobe.com/en_US/as3/dev/WS14c3067b34b57c6d4a97343b122ab36a52f-7ffb.html#WS14c3067b34b57c6d4a97343b122ab36a52f-7ff9 - 但我不明白如何设置每个标记的样式以及如何将TextFlow应用于已在Flash舞台上手动添加的TLF文本字段

1 个答案:

答案 0 :(得分:1)

有关信息,我放弃了使用TLFTextFields并通过使用另一种字体解决了这个问题(一个Flash了解粗体) - 故事的寓意是这个问题目前是残酷的Flash中TextFields的限制。

还有一件事:粗体文本无法在动态添加到舞台上的文本字段中起作用,除非从一开始就在舞台上存在TextFields(每种样式需要使用)(我在“test”中留下2个文本字段)白色的白色bg隐藏它们。)

未来的注意事项:针对这类问题制作视频à“愤怒的视频游戏书呆子”。