如何自动调整字体大小以适合文本框的高度/宽度?

Bra*_*don 11 apache-flex actionscript-3

我试图让文本自动调整其字体大小以填充整个文本组件.

我目前的方法是将字体大小设置为文本字符数和文本组件高度和宽度的函数,但我找不到合适的系数来使这项工作很好.

有更简单或更优雅的方式吗?

truncateToFit是否适用于Text?我在某处读到它不能正常工作.

编辑:我忘了提到我希望它超出最大字体大小(我认为这是127).这是怎么做到的?将scaleX?

小智 21

AS3样本功能.您应该在TextField的内容发生变化时随时调用它

function Autosize(txt:TextField):void 
{
  //You set this according to your TextField's dimensions
  var maxTextWidth:int = 145; 
  var maxTextHeight:int = 30; 

  var f:TextFormat = txt.getTextFormat();

  //decrease font size until the text fits  
  while (txt.textWidth > maxTextWidth || txt.textHeight > maxTextHeight) {
    f.size = int(f.size) - 1;
    txt.setTextFormat(f);
  }

}
Run Code Online (Sandbox Code Playgroud)

  • 在像这样的UI工具包中进行目标搜索时,您可能需要设置一个安全措施,以便在输入值中的更改实际上不影响输出值时(例如,由于某些情况下工具包行为的更改) ),你抓住它并放弃,以避免无限循环. (2认同)