Sanal klavye davranışı denetleme

Kullanıcı bir metin alanına veya özel olarak konfigüre edilmiş etkileşimli nesneye dokunduğunda çalışma zamanı otomatik olarak sanal klavyeyi açar. Klavye açıldığında, kullanıcının yazım sırasında metni görmesini sağlamak için çalışma zamanı uygulama içeriğini kaydırırken ve yeniden boyutlandırırken yerel platform kurallarını izler.

Klavye açıldığında odaklanılan nesne sırayla aşağıdaki olayları gönderir:

softKeyboardActivating olayı: klavye sahne alanına yükselmeye başlamadan hemen önce gönderilir. Gönderilen olay nesnesinin preventDefault() yöntemini çağırmazsanız sanal klavye açılmaz.

softKeyboardActivate olayı: softKeyboardActivating olay işlemesi tamamlandıktan sonra gönderilir. Odaklanılan nesne bu olayı gönderdiğinde Sahne Alanı nesnesinin softKeyboardRect özelliği sahne alanının sanal klavye tarafından gizlenen alanını yansıtmak için güncelleştirildi. Bu olay iptal edilemez.

Not: Örneğin, kullanıcı klavye türünü değiştirdiğinde klavyenin boyutu değişirse, odaklanılan nesne ikinci bir softKeyboardActivate olayı gönderir.

softKeyboardDeactivate olayı: sanal klavye herhangi bir neden dolayı kapatıldığında gönderilir. Bu olay iptal edilemez.

Aşağıdaki örnek, sahne alanı üzerine iki TextField nesnesi ekler. Üst TextField alanı alana dokunduğunuzda klavyenin yükselmesini engeller ve zaten yükselmişse klavyeyi kapatır. Alt TextField varsayılan davranışı gösterir. Örnek iki metin alanı tarafından gönderilen yazılım klavyesi olaylarını raporlar.

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