2010-09-02 14 views
0

J'ai besoin d'une solution ActionScript qui permettra au texte dynamique de tomber dans une zone de texte avec des dimensions prédéterminées (x, y, largeur, hauteur), puis d'augmenter ou de réduire le texte afin qu'il soit aussi grand que possible dans ces dimensions sans défilement. Wordwrap serait automatique, et il n'y aurait pas de rupture de paragraphe.Texte TLF de mise à l'échelle automatique dans AS3

J'ai un modèle de travail utilisant le texte classique de Flash, mais j'aimerais pouvoir utiliser le style en ligne fourni par TLF. Je n'ai pas encore tout mon esprit enveloppé par toutes les fonctionnalités TLF pour le moment.

Est-ce que quelqu'un sait s'il existe déjà une solution à cette situation - ou pourrait peut-être me diriger dans la bonne direction?

Répondre

1

Hm - cela devrait fonctionner, mais je ne suis pas sûr sur la façon précise la taille des caractères TLF est ... Anyways:

newFormat:TextFormat = new TextFormat(); 
newFormat.size *= myText.width/myText.textWidth; 
myText.setTextFormat(newFormat); 

Maintenant - cela crée essentiellement un TextFormat objet et définit sa taille de police à myText (TextField) largeur du conteneur (la largeur maximale) divisée par la largeur réelle du texte. Encore une fois - si la ligne de taille taille de la police est TLF pas si précis, doit être:

newFormat.size *= Math.round(myText.width/myText.textWidth * 100)/100; 

100 signifie qu'il est arrondi au centième.

modifier: Je crois vraiment que cette méthode est non seulement beaucoup plus simple, mais aussi efficace ... Je veux dire - qui est le point de TextField.textWidth ...

+0

Ceci est une bonne solution si vous ne travaillez qu'avec une seule ligne. Celui que BigWorld a posté supporte plusieurs. – Aaronius