2009-05-01 15 views
11

Sto cercando di fare in modo che il testo riduca automaticamente il suo carattere per riempire un intero componente di testo.Come ridimensionare automaticamente la dimensione del carattere per adattarla all'altezza/larghezza della casella di testo?

L'approccio corrente è impostare la dimensione del carattere in funzione del numero di caratteri di testo e dell'altezza e della larghezza dei componenti del testo, ma non riesco a trovare i giusti coefficienti per farlo funzionare correttamente.

C'è un modo più semplice o più elegante?

truncateToFit funziona su testo? Ho letto da qualche parte che non funziona bene.

Modifica: Ho dimenticato di dire che mi piacerebbe scalare oltre la dimensione massima del font (che è 127 credo). Come è fatto? scaleX?

risposta

21

Funzione campione AS3. Si dovrebbe chiamare ogni volta che cambia il contenuto del 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); 
    } 

} 
+0

Ho votato, grazie per il suggerimento. Sai come scalare oltre 145? – Brandon

+0

Intendevo la dimensione massima del carattere. – Brandon

+0

Mi spiace, non so come ridimensionare la dimensione del carattere oltre 145 –

Problemi correlati