Die Laufzeit öffnet automatisch die virtuelle Tastatur, wenn der Benutzer in ein Textfeld oder auf ein speziell konfiguriertes, interaktives Objekt tippt. Wenn die Tastatur geöffnet wird, berücksichtigt die Laufzeit die Konventionen der nativen Plattform für das Verschieben und Ändern der Größe des Anwendungsinhalts, damit Benutzer den Text bei der Eingabe sehen können.
Wenn die Tastatur geöffnet wird, löst das Objekt, das den Fokus besitzt, die folgenden Ereignisse in der angegebenen Reihenfolge aus:
softKeyboardActivating
-Ereignis – wird ausgelöst, unmittelbar bevor die Tastatur über der Bühne eingeblendet wird. Wenn Sie die
preventDefault()
-Methode des ausgelösten Ereignisobjekts aufrufen, wird die virtuelle Tastatur nicht geöffnet.
softKeyboardActivate
-Ereignis – wird ausgelöst, nachdem die Verarbeitung des
softKeyboardActivating
-Ereignisses abgeschlossen ist. Wenn das Objekt, das den Fokus besitzt, dieses Ereignis auslöst, wurde die
softKeyboardRect
-Eigenschaft des Stage-Objekts aktualisiert, da nun ein Teil der Bühne von der virtuellen Tastatur verdeckt wird. Dieses Ereignis kann nicht abgebrochen werden.
Hinweis:
Wenn die Größe der Tastatur sich ändert, beispielsweise weil der Benutzer den Tastaturtyp ändert, löst das Objekt, das den Fokus besitzt, ein zweites softKeyboardActivate-Ereignis aus.
softKeyboardDeactivate
-Ereignis – wird ausgelöst, wenn die virtuelle Tastatur geschlossen wird. Dieses Ereignis kann nicht abgebrochen werden.
Im folgenden Beispiel werden zwei TextField-Objekte auf der Bühne hinzugefügt. Das obere TextField-Objekt verhindert, dass die Tastatur eingeblendet wird, wenn Sie auf das Feld tippen, und schließt die Tastatur, wenn sie bereits eingeblendet wurde. Das untere TextField-Objekt zeigt das Standardverhalten. Das Beispiel zeigt die Ereignisse der virtuellen Tastatur, die von beiden Textfeldern ausgelöst werden.
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 );
}
}
}