flash: изменить размер текста в соответствии с размером слова? - PullRequest
1 голос
/ 16 марта 2012

Я сделал флэш-приложение, которое получает геолокацию зрителя (город, штат), и пытаюсь выяснить, как можно уменьшить шрифт, чтобы он помещался в контейнере, в котором он находится, в зависимости от размера Название города есть. Например, «Детройт» может соответствовать, но «Лос-Анджелес», возможно, должен быть меньшим шрифтом.

1 Ответ

0 голосов
/ 17 марта 2012
TextField.prototype.shrinkToFit = function(mn)  
{  
  var fmt = this.getTextFormat();  
  var pt = fmt.size;  
  /* add an extra few pixels to text width to be sure (there seem to be 
     some inherent margins)*/  
  while(this.textWidth + fmt.leftMargin + fmt.rightMargin + 4 > this._width){  
    fmt.size = --pt;  
    this.setTextFormat(fmt);  
    // break the loop if we've reached a specified minimum font size  
    if(mn != null && pt == mn) {  
       break;  
    }  
  }  
  return pt;  
};  

Пример использования:

this.createTextField("tf",10,20,20,200,20);

this.tf.multiline = false;

this.tf.wordWrap = false;

this.tf.setNewTextFormat(new TextFormat("_sans",18));

this.tf.text = "Ten thousand thundering typhoons";

this.tf.shrinkToFit();
...