El componente TextArea es un contenedor del objeto nativo TextField de ActionScript. Se puede utilizar el componente TextArea para mostrar texto, así como para editar y recibir entradas de texto si la propiedad
editable
es
true
. El componente puede mostrar o recibir varias líneas de texto y contener líneas largas de texto si la propiedad
wordWrap
se establece en
true
. La propiedad
restrict
permite restringir los caracteres que el usuario puede introducir.
maxChars
permite especificar el número máximo de caracteres que puede introducir el usuario. Si el texto sobrepasa los límites horizontales o verticales del área de texto, aparecen automáticamente barras de desplazamiento horizontales y verticales, a menos que sus propiedades asociadas,
horizontalScrollPolicy
y
verticalScrollPolicy
, se establezcan en
off
.
Puede utilizar un componente TextArea siempre que necesite un campo de texto de varias líneas. Por ejemplo, suponga que precisa un componente TextArea como campo de comentarios de un formulario. En tal caso, se puede definir un detector que compruebe si el campo está vacío cuando un usuario emplea el tabulador fuera del campo. El detector podría mostrar un mensaje de error indicando que debe introducirse un comentario en el campo.
Si necesita un campo de texto de una única línea, utilice el componente TextInput.
Se puede establecer el estilo
textFormat
con el método
setStyle()
para cambiar el estilo de texto que aparece en una instancia de TextArea. Asimismo, se puede aplicar el formato HTML a un componente TextArea mediante la propiedad
htmlText
de ActionScript y se puede establecer la propiedad
displayAsPassword
en
true
para enmascarar texto con asteriscos. Si se establece la propiedad
condenseWhite
en
true
, Flash elimina los espacios en blanco adicionales del nuevo texto (originados por espacios, saltos de línea, etc.). Esto no tiene ningún efecto sobre el texto que ya se encuentra en el control.
Interacción del usuario con el componente TextArea
Es posible activar o desactivar el componente TextArea en una aplicación. En el estado desactivado, no puede recibir entradas del ratón ni del teclado. Cuando está activado, sigue las mismas reglas de selección y navegación que un objeto TextField de ActionScript. Cuando una instancia de TextArea está seleccionada, se puede controlar mediante las teclas siguientes:
Tecla
|
Descripción
|
Teclas de flecha
|
Mueven el punto de inserción arriba, abajo, a la izquierda o a la derecha dentro del texto, siempre y cuando éste sea editable.
|
Av Pág
|
Mueve el punto de inserción al final del texto, si éste es editable.
|
Re Pág
|
Mueve el punto de inserción al principio del texto, si éste es editable.
|
Mayús+Tabulador
|
Desplaza la selección al objeto anterior en el bucle de tabulación.
|
Tabulador
|
Desplaza la selección al objeto siguiente en el bucle de tabulación.
|
Para obtener más información sobre el control de la selección, consulte la clase FocusManager en la
Referencia de ActionScript 3.0
para Flash Professional
y en
Trabajo con FocusManager
.
Parámetros del componente TextArea
Puede establecer los siguientes parámetros de edición para cada instancia del componente TextArea en el inspector de propiedades o en el inspector de componentes:
condenseWhite
,
editable
,
hortizontalScrollPolicy
,
maxChars
,
restrict
,
text
,
verticalScrollPolicy
y
wordwrap
. Cada uno de estos parámetros tiene una propiedad de ActionScript del mismo nombre. Para obtener información los valores posibles de estos parámetros, consulte la clase TextArea en la
Referencia de ActionScript 3.0
para Flash Professional
.
La previsualización dinámica de cada instancia de TextArea refleja los cambios de parámetros realizados durante la edición en el inspector de propiedades o el inspector de componentes. Si se necesita una barra de desplazamiento, ésta aparece en la previsualización dinámica, aunque no funciona. No es posible seleccionar texto en la previsualización dinámica, de igual modo que tampoco se puede introducir texto en la instancia del componente en el escenario.
Es posible escribir código ActionScript para controlar éstas y otras opciones adicionales para el componente TextArea mediante sus propiedades, métodos y eventos. Para obtener más información, consulte la clase TextArea en la
Referencia de ActionScript 3.0
para Flash Professional
.
Creación de una aplicación con el componente TextArea
El procedimiento siguiente explica cómo añadir un componente TextArea a una aplicación durante la edición. En el ejemplo, se configura un controlador de eventos
focusOut
en la instancia de TextArea que verifica que el usuario ha escrito algo en el área de texto antes de seleccionar una parte diferente de la interfaz.
-
Cree un nuevo documento de Flash (ActionScript 3.0).
-
Arrastre un componente TextArea del panel Componentes al escenario y asígnele el nombre de instancia
aTa
. Deje los parámetros establecidos en las opciones predeterminadas.
-
Arrastre un segundo componente TextArea del panel Componentes al escenario, colóquelo debajo del primero y asígnele el nombre de instancia
bTa
. Deje los parámetros establecidos en las opciones predeterminadas.
-
Abra el panel Acciones, seleccione el fotograma 1 en la línea de tiempo principal e introduzca el código ActionScript siguiente:
import flash.events.FocusEvent;
aTa.restrict = "a-z,'\" \"";
aTa.addEventListener(Event.CHANGE,changeHandler);
aTa.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, k_m_fHandler);
aTa.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, k_m_fHandler);
function changeHandler(ch_evt:Event):void {
bTa.text = aTa.text;
}
function k_m_fHandler(kmf_event:FocusEvent):void {
kmf_event.preventDefault();
}
En este ejemplo se limitan los caracteres que se pueden introducir en el área de texto
aTa
a caracteres en minúscula, comas, apóstrofes y espacios. También se configuran los controladores de eventos para los eventos
change
,
KEY_FOCUS_CHANGE
y
MOUSE_FOCUS_CHANGE
en el área de texto
aTa.
La función
changeHandler()
hace que el texto introducido en el área de texto
aTa
aparezca automáticamente en el área de texto
bTa
, mediante la asignación de
aTa.text
a
bTa.text
en cada evento
change.
La función
k_m_fHandler()
de los eventos
KEY_FOCUS_CHANGE
y
MOUSE_FOCUS_CHANGE
impide presionar la tecla Tabulador para desplazarse al siguiente campo sin introducir texto. Para ello, se impide el comportamiento predeterminado.
-
Seleccione Control > Probar película.
Si se presiona la tecla Tabulador para seleccionar la segunda área de texto sin introducir texto, aparecerá un mensaje de error y la selección deberá volver a la primera área de texto. A medida que se introduce texto en la primera área de texto, se verá duplicado en la segunda área de texto.
Creación de una instancia del componente TextArea con ActionScript
En el ejemplo siguiente se crea un componente TextArea con ActionScript. El código establece la propiedad
condenseWhite
en true para condensar el espacio en blanco y asigna texto a la propiedad
htmlText
para sacar partido de los atributos de formato de texto HTML.
-
Cree un nuevo documento de Flash (ActionScript 3.0).
-
Arrastre el componente TextArea al panel Biblioteca.
-
Abra el panel Acciones, seleccione el fotograma 1 en la línea de tiempo principal e introduzca el código ActionScript siguiente:
import fl.controls.TextArea;
var aTa:TextArea = new TextArea();
aTa.move(100,100);
aTa.setSize(200, 200);
aTa.condenseWhite = true;
aTa.htmlText = '<b>Lorem ipsum dolor</b> sit amet, consectetuer adipiscing elit. <u>Vivamus quis nisl vel tortor nonummy vulputate.</u> Quisque sit amet eros sed purus euismod tempor. Morbi tempor. <font color="#FF0000">Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos.</font> Curabitur diam. Suspendisse at purus in ipsum volutpat viverra. Nulla pellentesque libero id libero.';
addChild(aTa);
En este ejemplo se utiliza la propiedad
htmlText
para aplicar atributos de negrita y subrayado de HTML a un bloque de texto y mostrarlo en el área de texto
a_ta.
En el ejemplo también se establece la propiedad
condenseWhite
en
true
a fin de condensar el espacio en blanco del bloque de texto. El método
setSize()
establece la altura y la anchura del área de texto, y el método
move()
define su posición. El método
addChild()
añade la instancia de TextArea al escenario.
-
Seleccione Control > Probar película.
|
|
|