TextFormat.getTextExtent()

Disponibilidad

Flash Player 6. El parámetro width opcional es compatible con Flash Player 7.

Sintaxis

my_fmt.getTextExtent(text, [width])

Parámetros

text Una cadena.

width Número opcional que representa la anchura, expresada en píxeles, a la que debe ajustarse el texto especificado.

Valor devuelto

Un objeto con las propiedades width, height, ascent, descent, textFieldHeight, textFieldWidth.

Descripción

Método; devuelve información sobre las medidas del texto para la cadena de texto text en el formato especificado por my_fmt. La cadena text se trata como texto simple (no como texto HTML).

El método devuelve un objeto con seis propiedades: ascent, descent, width, height, textFieldHeight y textFieldWidth. Todas las medidas se expresan en píxeles.

Si se especifica un parámetro width, el ajuste de texto se aplica al texto especificado. Esto permite determinar la altura a la que un cuadro de texto mostrará todo el texto especificado.

Las medidas ascent y descent proporcionan, respectivamente, la distancia por encima y por debajo de la línea de base para una línea de texto. La línea de base para la primera línea de texto se coloca en el origen del campo de texto más su medida ascent.

Las medidas width y height proporcionan la anchura y la altura de la cadena de texto. Las medidas textFieldHeight y textFieldWidth proporcionan la altura y anchura necesarias para que un objeto de campo texto pueda mostrar toda la cadena de texto. Los campos de texto tienen un "indicador" de 2 píxeles de anchura, de modo que el valor de textFieldHeight es igual al valor de height + 4; del mismo modo, el valor de textFieldWidth siempre es igual al valor de width + 4.

Si crea un campo de texto en función de la métrica del texto, utilice textFieldHeight en lugar de height, y textFieldWidth, en lugar de width.

En la figura siguiente se ilustran estas medidas.

Cuando configure el objeto TextFormat, debe establecer todos los atributos exactamente como se establecerán para crear el campo de texto, incluidos el nombre de fuente, el tamaño de fuente y el interlineado. El valor predeterminado para el interlineado es 2.

Ejemplo

En este ejemplo se crea un campo de texto de una sola línea que es lo suficientemente grande para mostrar una cadena de texto utilizando el formato especificado.

var text = "Cadena corta";

// Crear un objeto TextFormat
// y aplicar sus propiedades.
var txt_fmt = new TextFormat();
with(txt_fmt) {
  font = "Arial";
  bold = true;
}

// Obtener información sobre la métrica para la cadena de texto
// con el formato especificado.
var metrics = txt_fmt.getTextExtent(text);

// Crear un campo de texto lo suficientemente grande como para visualizar el texto.
this.createTextField ("textField", 0, 100, 100, metrics.textFieldWidth, metrics.textFieldHeight);
textField.border = true;
textField.wordWrap = true;
// Asignar la misma cadena de texto y
// el objeto TextFormat al objeto TextField.
textField.text = text;
textField.setTextFormat(txt_fmt);

En el ejemplo siguiente se crea un campo de texto multilínea de 100 píxeles de ancho que tiene la altura suficiente para mostrar una cadena con el formato especificado.

// Crear un objeto TextFormat.
var txt_fmt:TextFormat= new TextFormat();

// Especificar propiedades de formato para el objeto TextFormat:
txt_fmt.font = "Arial";
txt_fmt.bold = true;
txt_fmt.leading = 4;

// Cadena de texto que debe mostrarse
var textToDisplay:String = "Macromedia Flash 7 incluye métricas de texto mejoradas.";

// Obtener información de las medidas del texto para la cadena,
// ajustada a 100 píxeles.
var metrics:Object = txt_fmt.getTextExtent(textToDisplay, 100);

// Crear un nuevo objeto TextField utilizando la 
// información sobre métrica que se acaba de obtener.
this.createTextField ("textField", 0, 50, 50-metrics.ascent, 100, metrics.textFieldHeight)
textField.wordWrap = true;
textField.border = true;
// Asignar el texto y el objeto TextFormat a TextObject:
textField.text = textToDisplay;
textField.setTextFormat(aformat);