AS3比例文本功能导致与Textfield HTML格式冲突

时间:2011-06-30 23:53:32

标签: html actionscript-3 formatting textfield autosize

Hello Guys我正在使用以下函数在运行时缩放动态字体大小:

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

这个想法是,当文本字段填充了外部内容时,它会减小字体大小以使所有文本适合texfield。到目前为止这项工作。

我现在最大的问题是此功能会干扰textfield 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!

使用缩放功能应用于文本字段时,html格式(大小变化)不起作用,但如果我删除缩放功能,则会起作用。

理想情况下,我希望能够缩放字体,如果文字太多而不适合并且能够应用html格式。

有人请帮忙。我正在使用CS5

非常感谢。

1 个答案:

答案 0 :(得分:0)

如果将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!]]>

否则,你可以尝试在Sprite中包装TextField并改为缩放Sprite吗? How do you scale a dynamic textfield in flash from the center point using as3?