Kontrollera beteende för virtuellt tangentbord

Det virtuella tangentbordet öppnas automatiskt när användaren pekar i ett textfält eller ett särskilt konfigurerat interaktivt objekt. När tangentbordet öppnas följs de inbyggda plattsformsreglerna för panorering och storleksändring av programinnehållet så att användare ser texten när de skriver.

När tangentbordet öppnas skickar det fokuserade objektet följande händelser i sekvens:

Händelsen softKeyboardActivating – skickas direkt innan tangentbordet börjar höjas över scenen. Om du anropar metoden preventDefault() för det skickade händelseobjektet öppnas inte det virtuella tangentbordet.

Händelsen softKeyboardActivate – skickas när softKeyboardActivating -händelsehantering har slutförts. När det fokuserade objektet skickar den här händelsen har egenskapen softKeyboardRect för Stage-objektet uppdaterats för att återspegla det område på scenen som skyms av det virtuella tangentbordet. Den här händelsen kan inte avbrytas.

Obs! Om tangentbordet exempelvis ändrar storlek när användaren ändrar tangentbordstypen skickar det fokuserade objektet en andra softKeyboardActivate-händelse.

Händelsen softKeyboardDeactivate – skickas när det virtuella tangentbordet stängs av någon anledning. Den här händelsen kan inte avbrytas.

Följande exempel lägger till två TextField-objekt på scenen. Det övre TextField-objektet förhindrar att tangentbordet höjs när du pekar på fältet och stänger det om det redan är höjt. Det nedre TextField-objektet demonstrerar standardbeteendet. I exemplet rapporteras de skärmtangentbordshändelser som skickas av båda textfälten.

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