Uso do componente TextArea

O componente TextArea é um invólucro do objeto ActionScript nativo TextField. Você pode usar o componente TextArea para exibir texto e para editar e receber entradas de texto, caso a propriedade editable seja true . O componente pode exibir ou receber várias linhas de texto e quebrar automaticamente longas linhas de texto caso a propriedade wordWrap seja definida como true . A propriedade restrict permite restringir os caracteres que um usuário pode digitar, enquanto a propriedade maxChars permite especificar o número máximo de caracteres a serem digitados. Se o texto ultrapassar os limites horizontal ou vertical da área de texto, as barras de rolagem horizontal e vertical aparecerão automaticamente, a menos que suas propriedades associadas, horizontalScrollPolicy e verticalScrollPolicy , sejam definidas como off .

Você pode usar um componente TextArea sempre que precisar de um campo de texto de várias linhas. Por exemplo, você pode usar um componente TextArea como um campo de comentário em um formulário. É possível configurar um ouvinte que verifique se o campo está vazio quando um usuário acessa o campo usando a tecla tab. Esse ouvinte pode exibir uma mensagem de erro informando que um comentário deve ser digitado no campo.

Se você precisar de um campo de texto com uma única linha, use o componente TextInput.

Você pode definir o estilo textFormat usando o método setStyle() para alterar o estilo do texto que aparece em uma ocorrência de TextArea. Também é possível formatar um componente TextArea com HTML usando a propriedade htmlText no ActionScript e definir a propriedade displayAsPassword como true para mascarar o texto com asteriscos. Se você definir a propriedade condenseWhite como true , o Flash removerá o espaço branco extra do novo texto resultante de espaços, quebras de linha etc. Isso não terá nenhum efeito sobre o texto que já está no controle.

Interação do usuário com o componente TextArea

Um componente TextArea pode estar ativado ou desativado em um aplicativo. No estado desativado, ele não pode receber entradas de mouse nem de teclado. Quando ativado, ele segue as mesmas regras de foco, seleção e navegação que o objeto TextField do ActionScript. Quando uma ocorrência de TextArea estiver com o foco, você poderá controlá-la usando as seguintes teclas:

Tecla

Descrição

Teclas de seta

Move o ponto de inserção para cima, para baixo, para esquerda ou para direita no texto, caso este seja editável.

Page Down

Movo o ponto de inserção para o final do texto, caso este seja editável.

Page Up

Movo o ponto de inserção para o início do texto, caso este seja editável.

Shift+Tab

Move o foco para o objeto anterior no loop de tabulação.

Tabulação

Move o foco para o objeto seguinte no loop de tabulação.

Para obter mais informações sobre o controle do foco, consulte a classe FocusManager na Referência do ActionScript 3.0 para Flash Professional e Trabalho com o FocusManager .

Parâmetros do componente TextArea

Você pode definir os parâmetros de autoria a seguir para cada instância do componente TextArea no Inspetor de propriedades ou no Inspetor e componentes: condenseWhite , editable , hortizontalScrollPolicy , maxChars , restrict , text , verticalScrollPolicy e wordwrap . Cada um desses parâmetros tem uma propriedade ActionScript correspondente de mesmo nome. Para obter informações sobre os possíveis valores desses parâmetros, consulte a classe TextArea na Referência do ActionScript 3.0 para Flash Professional .

Uma visualização ao vivo de cada ocorrência de TextArea reflete as alterações feitas nos parâmetros no Inspetor de propriedades ou no Inspetor de componentes durante a criação. Se uma barra de rolagem for necessária, ela aparecerá na visualização ao vivo, mas não funcionará. O texto não pode ser selecionado na visualização ao vivo, e não é possível digitar texto na ocorrência do componente no Palco.

Você pode escrever o ActionScript de modo a controlar essas e outras opções do componente TextArea usando suas propriedades, métodos e eventos. Para obter mais informações, consulte a classe TextArea na Referência do ActionScript 3.0 para Flash Professional .

Criar um aplicativo com o componente TextArea

O procedimento a seguir explica como adicionar um componente TextArea a um aplicativo durante a criação. O exemplo configura um manipulador de eventos focusOut na ocorrência de TextArea que verifica se o usuário digitou algo na área de texto antes de atribuir o foco a uma parte diferente da interface.

  1. Crie um novo documento Flash (ActionScript 3.0).

  2. Arraste um componente TextArea do painel Componentes para o Palco e atribua a ele o nome de ocorrência aTa . Deixe seus parâmetros definidos com as configurações padrão.

  3. Arraste um segundo componente TextArea do painel Componentes para o Palco, coloque-o abaixo do primeiro e atribua a ele o nome de ocorrência bTa . Deixe seus parâmetros definidos com as configurações padrão.

  4. Abra o painel Ações, selecione Quadro 1 na Linha do tempo principal e digite o seguinte código do ActionScript:

    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(); 
    }

    Este exemplo restringe os caracteres digitados na área de texto aTa a caracteres minúsculos, vírgula, apóstrofo e espaços. Ele também configura os manipuladores dos eventos change , KEY_FOCUS_CHANGE e MOUSE_FOCUS_CHANGE na área de texto aTa . A função changeHandler() faz com que o texto digitado na área de texto aTa apareça automaticamente na área de texto bTa , atribuindo aTa.text a bTa.text em cada evento change . A função k_m_fHandler() dos eventos KEY_FOCUS_CHANGE e MOUSE_FOCUS_CHANGE impede que você pressione a tecla Tab para mover-se para o campo seguinte sem digitar nenhum texto. Ele faz isso impedindo o comportamento padrão.

  5. Selecione Controlar > Testar filme.

    Se você pressionar a tecla Tab para mover o foco para a segunda área de texto sem digitar nenhum texto, uma mensagem de erro será exibida e o foco deverá retornar para a primeira área de texto. Quando você digitar texto na primeira área de texto, o verá duplicado na segunda área de texto.

Criação de uma ocorrência de TextArea por meio do ActionScript

O exemplo a seguir cria um componente TextArea com o ActionScript. Ele define a propriedade condenseWhite como true para condensar o espaço em branco e atribui o texto à propriedade htmlText para tirar proveito dos atributos de formatação de texto HTML.

  1. Crie um novo documento Flash (ActionScript 3.0).

  2. Arraste o componente TextArea para o painel Biblioteca.

  3. Abra o painel Ações, selecione Quadro 1 na Linha do tempo principal e digite o seguinte código do ActionScript:

    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);

    Este exemplo usa a propriedade htmlText para aplicar atributos HTML negrito e sublinhado a um bloco de texto e exibi-lo na área de texto a_ta . O exemplo também define a propriedade condenseWhite como true para condensar o espaço em branco no bloco de texto. O método setSize() define a altura e largura da área de texto, enquanto o método move() define sua posição. O método addChild() adiciona a ocorrência de TextArea ao Palco.

  4. Selecione Controlar > Testar filme.