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

在这个问题上,我一直陷在很长很长的时间里,这个问题已经提出并讨论过很多次了。 这个任务还是一个简单的任务,实在不应该花费它已经有的疯狂的时间量:在嵌入字体(Arial除外)的文本字段中加粗几个字。

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

我做了几十次测试,全部使用“经典”文本字段失败,为每个重量嵌入字体一次,并使用htmlText:在嵌入对话框中尝试每个可能的设置,标签为b,span,em - 带有TextFormat(粗体,字体)或StyleSheet(fontWeight,fontStyle,fontFamily)...

结论:在单个文本字段中设置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); - 比较 http://help.adobe.com/en_US/as3/dev/WS14c3067b34b57c6d4a97343b122ab36a52f-7ffb.html#WS14c3067b34b57c6d4a97343b122ab36a52f-7ff9 - 但我不明白如何设置每个标签的样式,以及如何将TextFlow应用到已添加的TLF文本字段手动在Flash舞台上?


有关信息,我放弃了使用TLFTextFields和使用其他字体 (一个的Flash理解黑体)解决此问题的工作-这个故事的寓意是,这个问题是目前一个残酷的限制,在Flash的TextField。

还有一两件事:大胆的文字不会出现在从开始阶段在舞台上动态添加,除非已经是TextField的(每个风格,你需要使用)文本框的工作(我离开2个文本框以“test”白上白色的bg来隐藏它们)。

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

链接地址: http://www.djcxy.com/p/17781.html

上一篇: FlashCS5 embedded Font htmlText bold: how to use TLFTextField and TextConverter?

下一篇: Flash CS5: combining bold and regular text in a textfield?