2009-05-01 21 views
11

Estoy tratando de que el texto cambie automáticamente el tamaño de su fuente para llenar un componente de texto completo.Cómo redimensionar automáticamente el tamaño de la fuente para que se ajuste al alto/ancho del cuadro de texto?

Mi enfoque actual es establecer el tamaño de fuente como una función del número de caracteres de texto y los componentes de texto de alto y ancho, pero no puedo encontrar los coeficientes correctos para que esto funcione bien.

¿Hay alguna manera más simple o más elegante?

¿TruncateToFit funciona en texto? Leí en alguna parte que no funciona bien.

Edit: Me olvidé de mencionar que me gustaría que escalara más allá del tamaño máximo de la fuente (que es 127, creo). ¿Cómo se hace esto? scaleX?

Respuesta

21

AS3 muestra la función. Debería llamarlo cuando el contenido de su TextField cambie

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); 
    } 

} 
+0

He votado positivamente, gracias por la sugerencia. ¿Sabes cómo escalar más allá de 145? – Brandon

+0

Quise decir el tamaño de fuente máximo. – Brandon

+0

Disculpe, no sé cómo escalar el tamaño de fuente más allá de 145 –

Cuestiones relacionadas