ventajas - programacion actionscript en flash
Texto dinámico: cambio de tamaño automático de la fuente (2)
Tengo un campo de texto dinámico que debe tener un ancho y una altura fijos.
El texto real que poblará el campo de texto dinámico es variable.
Lo que me gustaría hacer es reducir el tamaño de la fuente si el texto no se muestra completamente dentro de las dimensiones del campo de texto.
¿Alguna idea sobre cómo puedo realizar esto con precisión?
Además, estoy usando AS 2.
Gracias
Esto debería funcionar:
function updateFontSize(tField:TextField, defaultSize:Number) {
var tFormat:TextFormat = new TextFormat();
tFormat.size = defaultSize;
tField.setTextFormat(tFormat);
var size:Number = defaultSize;
while((tField.textWidth > tField._width || tField.textHeight > tField._height) && size > 0) {
size = size - 1;
tFormat.size = size;
tField.setTextFormat(tFormat);
}}
Llame a esta función cada vez que cambie su texto. El primer argumento para esta función es el campo de texto. El segundo es el tamaño de letra que prefiera (se reducirá si es demasiado grande).
Siguiendo el código de SomeBloke, aquí hay otro enfoque que usa la escala
//set the TextField width & height var fixedWidth:Number = 200; var fixedHeight:Number = 24; function scaleTextToSize(tField:TextField, defaultScale:Number) { //You can fine tune the amount of scaling here var amount:Number = .1; var scale:Number = defaultScale; while((tField.width > fixedWidth || tField.height > fixedHeight) ) { scale -= amount; tField.scaleX = tField.scaleY = scale; } }