Uso del componente TextArea

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.

  1. Cree un nuevo documento de Flash (ActionScript 3.0).

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  1. Cree un nuevo documento de Flash (ActionScript 3.0).

  2. Arrastre el componente TextArea al panel Biblioteca.

  3. 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.

  4. Seleccione Control > Probar película.