Het virtuele toetsenbord besturen

De runtime geeft het virtuele toetsenbord automatisch weer wanneer een gebruiker een tekstveld of een speciaal geconfigureerd interactief object aanraakt. Wanneer het toetsenbord verschijnt, volgt de runtime de conventies van het native platform voor het pannen en aanpassen van de grootte van de toepassingsinhoud, zodat de gebruiker de tekst die hij of zij typt, kan zien.

Wanneer het toetsenbord verschijnt, verzendt het object dat de focus heeft achtereenvolgens de volgende gebeurtenissen:

De gebeurtenis softKeyboardActivating — wordt verzonden vlak voordat het toetsenbord in beeld komt in het werkgebied. Als u de methode preventDefault() van het verzonden gebeurtenisobject aanroept, wordt het virtuele toetsenbord niet weergegeven.

De gebeurtenis softKeyboardActivate — wordt verzonden nadat de gebeurtenis softKeyboardActivating is afgehandeld. Wanneer het object met focus deze gebeurtenis verzendt, wordt de eigenschap softKeyboardRect van het object Stage bijgewerkt om het gedeelte van het werkgebied dat wordt verborgen door het virtuele toetsenbord aan te geven. Deze gebeurtenis kan niet worden geannuleerd.

Opmerking: Wanneer het formaat van het toetsenbord verandert, bijvoorbeeld wanneer de gebruiker het type toetsenbord wijzigt, verzendt het object dat de focus heeft een tweede gebeurtenis softKeyboardActivate.

De gebeurtenis softKeyboardDeactivate — wordt verzonden wanneer het virtuele toetsenbord om welke reden dan ook wordt gesloten. Deze gebeurtenis kan niet worden geannuleerd.

Met het volgende voorbeeld voegt u twee TextField-objecten toe aan het werkgebied. Met het bovenste TextField voorkomt u dat het toetsenbord wordt weergegeven wanneer u op het veld tikt en sluit u het toetsenbord als het al wordt weergegeven. Het laagste TextField illustreert het standaardgedrag. Het voorbeeld rapporteert de gebeurtenissen met betrekking tot het elektronische toetsenbord die door beide tekstvelden worden verzonden.

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