Controle do comportamento do teclado virtual

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