# ActionScript/Tipos de campos de texto

Podemos criar um campo de texto através do ActionScript e ele pode ser de duas características diferentes: ou uma caixa de input (para formulários) ou de texto dinâmico (que pode ser alterado). O tipo StaticText, texto estático do Flash, só pode ser criada na IDE do Flash.
As bibliotecas usadas são flash.text.TextField, para a criação dos textos em si, e flash.text.TextFieldType, para configuração do tipo de caixa de texto.
O campo placar será do tipo dinâmico, o que permite a mudança de seu texto, e login é um campo de input, o que faz com que ele possa ser editado e submetido.

### Estilizando campo de texto

Podemos definir a altura e largura de um campo de texto, se terá borda e sua cor, cor de fundo, entre outros.

### Campo de senha

Precisa ser do tipo input e ser configurado true para o atributo displayAsPassword. Você pode configurar também o número máximo de caracteres e uma expressão regular para restringir os tipos de caracteres aceitos (se somente letras, números, etc.).
Veja mais sobre expressões regulares em ActionScript na página de ajuda da Adobe.

### Foco a um campo de texto

Use a propriedade focus para lançar o foco sobre um campo de texto. O exemplo abaixo faz com que quando o palco for clicado a caixa de senha cxSenha receba o foco do cursor de texto.
Você pode usar esse comando stage.focus porque a referência a linha principal de tempo está implícita. Você poderia escrever esse comando de duas maneiras diferentes que surtem o mesmo efeito:

### Acrescentando texto

Utilize o método appendText:
O resultado será "Meu nome é João". Você pode adicionar texto através do operador += também (cxTexto.text += "João"), mas appendText é mais rápido.

### Dimensionando um campo de texto

A propriedade autoSize, da classe TextField, redimensiona um campo de texto baseado em entrada e na escolha do alinhamento.
Você pode utilizar as propriedades TextFieldAutoSize.LEFT (expande ou contrai no lado direito, em qualquer caso de linhas novas), TextFieldAutoSize.RIGHT (expande ou contrai no lado esquerdo) e TextFieldAutoSize.CENTER (distribui igualmente tanto à direita como à esquerda os espaços).
No exemplo acima, cada vez que a caixa for clicado novo texto será adicionado, o que faz com que a caixa, em vez de esconder o texto novo, se redimensione e abrigue mais texto.
* O caractere especial \n significa uma nova linha de texto (carriage return).

### Rolagem de um campo de texto

Para efetuar a rolagem num campo de texto você deve utilizar as propriedades scrollV (rolagem vertical) e scrollH (horizontal). Veja o exemplo:
Ao clicar em cxTexto você verá o texto rolando, uma linha por vez (por causa de ++, mas você pode pedir que ande determinado número de linhas usando o atributo += ). Você pode fazer a rolagem ir para cima diminuindo com scrollV--, ou então inserir diretamente um número inteiro para rolar a caixa.
* A barra invertida (\) inserida na string em cxTexto.text serve para darmos continuidade na escrita de um comando muito longo na linha seguinte. Assim não temos dificuldades para ler e escrever códigos muito longos.
* A roda do mouse também permite a rolagem da caixa de texto.

### Usando fontes embutidas

Utilize a propriedade embedFonts para dar suporte a uma fonte embutida (só possível através da IDE do Flash).

### Usando TextFormat

Criando uma instância da classe TextFormat você pode formatar campos de txto, configurando cores para o texto, tipologia, tamanho, entre outras. Não permite todos os recursos que a formatação através de HTML/CSS (visto adiante), porém TextFormat é um pouco mais fácil de se utilizar.
O uso da propriedade defaultTextFormat funciona bem porque definimos o texto da caixa cxTexto depois de discriminarmos a formatação. Para inserirmos a formatação depois de definir o texto temos que usar o método setTextFormat. Você pode especificar também um limite de caracteres (seleção) que será formatada (em vez do texto todo):