大家好,我使用下面的函数在运行时缩放动态字体大小,如下所示:

function scaleTextToFitInTextField( txt : TextField ):void{
 var f:TextFormat = txt.getTextFormat();
 f.size = ( txt.width > txt.height ) ? txt.width : txt.height;
 txt.setTextFormat( f );

 while ( txt.textWidth > txt.width - 4 || txt.textHeight > txt.height - 6 ){
    f.size = int( f.size ) - 1;
    txt.setTextFormat( f );
}
}

scaleTextToFitInTextField( tf );
// tf is a dynamic multiline textfield on stage with dimension 150x150

其思想是,当文本字段被外部内容填充时,它会减小字体大小,使所有文本都适合文本字段。到目前为止这项工作。
我现在最大的问题是这个函数干扰了文本域html格式。例如,我加载外部html:
<font size="-2">this text is way</font><br><font size="+5">TOO BIG</font><br>to fit in this box, but I'll give it a try!

将scale函数应用于文本字段时,html格式(大小变化)不起作用,但如果删除scale函数,它会起作用。
理想情况下,如果文本太大而无法容纳,我希望能够缩放字体,并且能够应用html格式。
有人帮忙。我在用CS5
非常感谢。

最佳答案

如果您将htmlText包装在<![CDATA[]]>中,它可能会工作:

<![CDATA[<font size="-2">this text is way</font><br><font size="+5">TOO BIG</font><br>to fit in this box, but I'll give it a try!]]>

否则,您可以尝试将文本字段包装成精灵并缩放精灵?How do you scale a dynamic textfield in flash from the center point using as3?

07-27 13:55