Uygulama görüntüleme değişikliklerini işleme

AIR 2.6 ve üstü

AIR'de, uygulama tanımlayıcısındaki softKeyboardBehavior öğesini none olarak ayarlayarak, yazılım klavyesini kaldırmayla ilişkili varsayılan kaydırma ve yeniden boyutlandırma işlevlerini kapatabilirsiniz.

<softKeyboardBehavior>none</softKeyboardBehavior>

Otomatik davranışı devre dışı bıraktığınızda, uygulama ekranındaki gerekli ayarlamaları yapmak uygulamanızın sorumluluğundadır. Klavye açıldığında bir softKeyboardActivate olayı gönderilir. softKeyboardActivate olayı gönderildiğinde, sahne alanının softKeyboardRect özelliği açık klavye tarafından gizlenen alanın boyutlarını içerir. Bu boyutları, klavye açıkken veya kullanıcı yazı yazarken düzgün bir şekilde görüntülenmesini sağlayacak şekilde içeriğinizi taşımak veya yeniden boyutlandırmak için kullanın. (Klavye kapalıyken softKeyboardRect dikdörtgeninin tüm boyutları sıfırdır.)

Klavye kapandığında bir softKeyboardDeactivate olayı gönderilir ve uygulama ekranını normale döndürebilirsiniz.

package  {        
    import flash.display.MovieClip; 
    import flash.events.SoftKeyboardEvent; 
    import flash.events.Event; 
    import flash.display.StageScaleMode; 
    import flash.display.StageAlign; 
    import flash.display.InteractiveObject; 
    import flash.text.TextFieldType; 
    import flash.text.TextField; 
     
    public class PanningExample extends MovieClip { 
                     
        private var textField:TextField = new TextField(); 
         
        public function PanningExample() {             
            this.stage.scaleMode = StageScaleMode.NO_SCALE; 
            this.stage.align = StageAlign.TOP_LEFT; 
             
            textField.y = this.stage.stageHeight - 201; 
            textField.width = this.stage.stageWidth; 
            textField.height = 200; 
            textField.type = TextFieldType.INPUT; 
            textField.border = true; 
            textField.wordWrap = true; 
            textField.multiline = true; 
             
            this.addChild( textField ); 
             
            //track soft keyboard and stage resize events 
            textField.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE, onKeyboardChange ); 
            textField.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE, onKeyboardChange ); 
            this.stage.addEventListener( Event.RESIZE, onDisplayAreaChange ); 
        } 
     
        private function onDisplayAreaChange( event:Event ):void 
        { 
            textField.y = this.stage.stageHeight - 201; 
            textField.width = this.stage.stageWidth; 
        } 
         
        private function onKeyboardChange( event:SoftKeyboardEvent ):void 
        { 
            var field:InteractiveObject = textField; 
            var offset:int = 0; 
 
            //if the softkeyboard is open and the field is at least partially covered 
            if( (this.stage.softKeyboardRect.y != 0) && (field.y + field.height > this.stage.softKeyboardRect.y) ) 
                offset = field.y + field.height - this.stage.softKeyboardRect.y; 
                 
            //but don't push the top of the field above the top of the screen 
            if( field.y - offset < 0 ) offset += field.y - offset; 
             
            this.y = -offset;             
        }         
    } 
}
Not: Android'de, klavyenin tam boyutlarının işletim sisteminde bulunmadığı tam ekran modunu da içeren durumlar vardır. Bu durumlarda boyut tahmin edilir. Ayrıca, yatay yönlendirmelerde, tüm metin girişleri için yerel tam ekran IME klavyesi kullanılır. Bu IME klavyesi yerleşik metin girişi alanına sahiptir ve tüm sahne alanını gizler. Ekranı doldurmayan bir yatay klavyeyi görüntülemenin bir yolu yoktur.