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