ActionScript/Tipos de campos de texto: diferenças entre revisões

[edição verificada][revisão pendente]
Conteúdo apagado Conteúdo adicionado
He7d3r.bot (discussão | contribs)
→‎Selecionando texto: Trocando categorização manual por AutoCat (o indexador da categoria estava incorreto) [ usando AWB ]
m <source> -> <syntaxhighlight> (phab:T237267)
 
Linha 2:
 
As bibliotecas usadas são <code>flash.text.TextField</code>, para a criação dos textos em si, e <code>flash.text.TextFieldType</code>, para configuração do tipo de caixa de texto.
<sourcesyntaxhighlight lang='actionscript3'>
 
var placar:TextField = new TextField();
Linha 18:
addChild(placar);
addChild(login);
</syntaxhighlight>
</source>
 
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.
Linha 25:
Podemos definir a altura e largura de um campo de texto, se terá borda e sua cor, cor de fundo, entre outros.
 
<sourcesyntaxhighlight lang='actionscript3'>
var cxTexto:TextField = new TextField();
cxTexto.type = TextFieldType.DYNAMIC;
Linha 47:
 
addChild(cxTexto);
</syntaxhighlight>
</source>
 
=== Campo de senha ===
Linha 53:
Você pode configurar também o número máximo de caracteres e uma [[w:Expressão Regular|expressão regular]] para restringir os tipos de caracteres aceitos (se somente letras, números, etc.).
 
<sourcesyntaxhighlight lang='actionscript3'>
var cxSenha:TextField = new TextField();
cxSenha.type = TextFieldType.INPUT;
Linha 71:
cxSenha.backgroundColor = 0xDDDDDD;
addChild(cxSenha);
</syntaxhighlight>
</source>
Veja mais sobre expressões regulares em ActionScript na [http://help.adobe.com/pt_BR/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7ea9.html página de ajuda da Adobe].
 
Linha 77:
Use a propriedade <code>focus</code> 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.
 
<sourcesyntaxhighlight lang='actionscript3'>
var cxSenha:TextField = new TextField();
cxSenha.type = TextFieldType.INPUT;
Linha 98:
}
 
</syntaxhighlight>
</source>
 
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:
 
<sourcesyntaxhighlight lang='actionscript3'>
 
cxSenha.stage.focus = cxSenha; // fazendo referência ao palco da cxSenha, ou
this.stage.focus = cxSenha; // usando a palavra 'this'
</syntaxhighlight>
</source>
 
=== Acrescentando texto ===
Utilize o método <code>appendText()</code>:
 
<sourcesyntaxhighlight lang='actionscript3'>
var cxTexto:TextField = new TextField();
 
cxTexto.text = "Meu nome é ";
cxTexto.appendText("João");
</syntaxhighlight>
</source>
 
O resultado será "Meu nome é João". Você pode adicionar texto através do operador += também (cxTexto.text += "João"), mas <code>appendText()</code> é mais rápido.
Linha 123:
A propriedade <code>autoSize</code>, da classe <code>TextField</code>, redimensiona um campo de texto baseado em entrada e na escolha do alinhamento.
 
<sourcesyntaxhighlight lang='actionscript3'>
var cxSenha:TextField = new TextField();
cxSenha.type = TextFieldType.DYNAMIC;
Linha 153:
evt.target.appendText("TEXTO ");
}
</syntaxhighlight>
</source>
 
Você pode utilizar as propriedades <code>TextFieldAutoSize.LEFT</code> (expande ou contrai no lado direito, em qualquer caso de linhas novas), <code>TextFieldAutoSize.RIGHT</code> (expande ou contrai no lado esquerdo) e <code>TextFieldAutoSize.CENTER</code> (distribui igualmente tanto à direita como à esquerda os espaços).
Linha 164:
Veja o exemplo:
 
<sourcesyntaxhighlight lang='actionscript3'>
var cxTexto:TextField = new TextField();
cxTexto.type = TextFieldType.DYNAMIC;
Linha 191:
evt.target.scrollV++;
}
</syntaxhighlight>
</source>
 
Ao clicar em <code>cxTexto</code> 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 <code>scrollV--</code>, ou então inserir diretamente um número inteiro para rolar a caixa.
Linha 201:
=== Usando fontes embutidas ===
Utilize a propriedade <code>embedFonts</code> para dar suporte a uma fonte embutida (só possível através da IDE do Flash).
<sourcesyntaxhighlight lang='actionscript3'>
 
cxTexto.embedFonts = true;
 
</syntaxhighlight>
</source>
 
=== Usando TextFormat ===
Criando uma instância da classe <code>TextFormat</code> 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 <code>TextFormat</code> é um pouco mais fácil de se utilizar.
 
<sourcesyntaxhighlight lang='actionscript3'>
var formatacao:TextFormat = new TextFormat(); // Criando o objeto
 
Linha 244:
 
addChild(cxTexto);
</syntaxhighlight>
</source>
 
O uso da propriedade <code>defaultTextFormat</code> 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 <code>setTextFormat()</code>. Você pode especificar também um limite de caracteres (seleção) que será formatada (em vez do texto todo):
 
<sourcesyntaxhighlight lang='actionscript3'>
cxTexto.setTextFormat(formatacao);
 
// Apenas os caracteres de 0 a 4. O valor 4 é o caractere até onde vai a formatação, e 0 o início
cxTexto.setTextFormat(formatacao, 0, 4);
</syntaxhighlight>
</source>
 
=== Usando HTML e CSS ===