O tempo de execução abre automaticamente o teclado virtual quando o usuário toca dentro de um campo de texto ou um objeto interativo especialmente configurado. Quando o teclado é aberto, o tempo de execução segue as convenções de plataforma nativa deslocando e redimensionando o conteúdo do aplicativo para que o usuário possa ver o texto enquanto digita.
Quando o teclado é aberto, o objeto focado envia os seguintes eventos em sequência:
Evento
softKeyboardActivating
— enviado imediatamente antes do teclado começar a aparecer na plataforma. Se você chamar o método
preventDefault()
do objeto do evento enviado, o teclado virtual não é aberto.
softKeyboardActivate
evento — enviado após a manipulação do evento
softKeyboardActivating
terminar. Quando o objeto focado envia esse evento, a propriedade
softKeyboardRect
do objeto Stage foi atualizado para refletir a área da plataforma obscurecida pelo teclado virtual. Este evento não pode ser cancelado.
Nota:
Se o teclado muda de tamanho, quando o usuário muda o tipo de teclado, por exemplo, o objeto focado envia um segundo evento softKeyboardActivate.
Evento
softKeyboardDeactivate
— enviado quando o teclado virtual é fechado por algum motivo. Este evento não pode ser cancelado.
O exemplo a seguir adiciona dois objetos TextField na plataforma. O TextField superior impede o teclado de surgir quando você toca o campo e fecha-o se já estiver aparecendo. O TextField inferior demonstra o comportamento padrão. O exemplo informa os eventos de teclado de software enviados por ambos os campos de texto.
package
{
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.events.SoftKeyboardEvent;
public class SoftKeyboardEventExample extends Sprite
{
private var tf1:TextField = new TextField();
private var tf2:TextField = new TextField();
public function SoftKeyboardEventExample()
{
tf1.width = this.stage.stageWidth;
tf1.type = TextFieldType.INPUT;
tf1.border = true;
this.addChild( tf1 );
tf1.addEventListener( SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING, preventSoftKe yboard );
tf1.addEventListener( SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE, preventSoftKe yboard );
tf1.addEventListener( SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE, preventSoftKeyboard );
tf2.border = true;
tf2.type = TextFieldType.INPUT;
tf2.width = this.stage.stageWidth;
tf2.y = tf1.y + tf1.height + 30;
this.addChild( tf2 );
tf2.addEventListener( SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING, allowSoftKeyboard );
tf2.addEventListener( SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE, allowSoftKeyboard );
tf2.addEventListener( SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE, allowSoftKeyboard);
}
private function preventSoftKeyboard( event:SoftKeyboardEvent ):void
{
event.preventDefault();
this.stage.focus = null; //close the keyboard, if raised
trace( "tf1 dispatched: " + event.type + " -- " + event.triggerType );
}
private function allowSoftKeyboard( event:SoftKeyboardEvent ) :void
{
trace( "tf2 dispatched: " + event.type + " -- " + event.triggerType );
}
}
}