AIR'de görev çubuğu simgeleri

Adobe AIR 1.0 ve üstü

Çoğu işletim sistemi, Mac OS X dock'u gibi uygulamayı temsil edecek bir simge içeren bir görev çubuğu sağlar. Adobe® AIR® NativeApplication.nativeApplication.icon özelliği aracılığıyla uygulama görev çubuğu simgesiyle etkileşik kurmak için bir arabirim sağlar.

Görev çubuğu simgeleri hakkında

AIR, NativeApplication.nativeApplication.icon nesnesini otomatik olarak oluşturur. Nesne türü işletim sistemine bağlı olarak DockIcon veya SystemTrayIcon olur. NativeApplication.supportsDockIcon ve NativeApplication.supportsSystemTrayIcon özelliklerini kullanarak, AIR'in geçerli işletim sisteminde bu InteractiveIcon alt sınıflarından hangisini desteklediğini belirleyebilirsiniz. InteractiveIcon temel sınıfı, simge için kullanılan görüntüyü değiştirmek için kullanabileceğiniz width, height ve bitmaps özelliklerini sağlar. Ancak, DockIcon veya SystemTrayIcon öğelerine özgü özelliklere yanlış işletim sisteminde erişilmesi, bir çalışma zamanı hatası oluşturur.

Bir simge için kullanılan görüntüyü ayarlamak veya değiştirmek için, bir veya daha çok görüntü içeren bir dizi oluşturun ve bu diziyi NativeApplication.nativeApplication.icon.bitmaps özelliğine atayın. Görev çubuğu simgelerinin boyutu farklı işletim sistemlerinde farklı olabilir. Ölçeklemeye bağlı görüntü bozulmasını önlemek için bitmaps dizisine görüntülerin birden çok boyutunu ekleyebilirsiniz. Birden çok görüntü sağladığınızda, AIR gerektiğinde görüntüyü ölçekleyerek görev çubuğu simgesinin geçerli görüntü boyutuna en yakın boyutu seçer. Aşağıdaki örnek, iki görüntüyü kullanarak görev çubuğu simgesine ilişkin görüntüyü ayarlar:

NativeApplication.nativeApplication.icon.bitmaps =  
            [bmp16x16.bitmapData, bmp128x128.bitmapData]; 

Simge görüntüsünü değiştirmek için bitmaps özelliğine yeni görüntüyü veya görüntüleri içeren bir dizi atayın. Simgeyi, bir enterFrame or timer olayına yanıt olarak görüntüyü değiştirerek hareketlendirebilirsiniz.

Simgeyi Windows ve Linux'ta bildirim alanından kaldırmak veya Mac OS X'te varsayılan simge görünümünü geri yüklemek için bitmaps öğesini boş bir dizi olarak ayarlayın:

NativeApplication.nativeApplication.icon.bitmaps = []; 

Dock simgeleri

AIR, NativeApplication.supportsDockIcontrue olduğunda dock simgelerini destekler. NativeApplication.nativeApplication.icon özelliği, dock üzerindeki uygulama simgesini temsil eder. (Pencere dock simgesini değil.)

Not: AIR, Mac OS X altındaki dock üzerinde pencere simgelerini değiştirmeyi desteklemez. Ayrıca, uygulama dock simgesindeki değişiklikler yalnızca uygulama çalışırken uygulanır — uygulama iptal edildiğinde simge normal görünümüne geri döner.

Dock simgesi menüleri

Komutlar içeren bir NativeMenu nesnesi oluşturarak ve bu nesneyi NativeApplication.nativeApplication.icon.menu özelliğine atayarak standart dock menüsüne komutlar ekleyebilirsiniz. Menüdeki öğeler, standart dock simgesi menü öğelerinin üzerinde görüntülenir.

Dock'u zıplatma

NativeApplication.nativeApplication.icon.bounce() yöntemini çağırarak dock simgesini zıplatabilirsiniz. bounce() priority parametresini bilgi amaçlı olarak ayarlarsanız, simge bir kez zıplar. Parametreyi kritik olarak belirlerseniz, simge kullanıcı uygulamayı etkinleştirene kadar zıplar. Priority parametresine ilişkin sabitler NotificationType sınıfında tanımlanır.

Not: Uygulama zaten etkinse, simge zıplamaz.

Dock simgesi olayları

Dock simgesi tıklatıldığında, NativeApplication nesnesi bir invoke olayı gönderir. Uygulama çalışmıyorsa, sistem uygulamayı başlatır. Aksi halde, invoke olayı çalışan uygulama örneğine iletilir.

Sistem Tepsisi simgeleri

Şu anda Windows ve çoğu Linux dağıtımlarında olduğu gibi NativeApplication.supportsSystemTrayIcontrue değerinde olduğunda, AIR sistem tepsisi simgelerini destekler. Windows ve Linux'ta, sistem tepsisi simgeleri görev çubuğunun bildirim alanında görüntülenir. Simge, varsayılan olarak görüntülenir. Simgeyi görüntülemek için, simgenin bitmaps özelliğine BitmapData nesneleri içeren bir dizi atayın. Simge görüntüsünü değiştirmek için bitmaps öğesine yeni görüntüleri içeren bir dizi atayın. Simgeyi kaldırmak için bitmaps öğesini null değerine ayarlayın.

Sistem tepsisi simge menüleri

Bir NativeMenu nesnesi oluşturup bu nesneyi NativeApplication.nativeApplication.icon.menu özelliğine atayarak menüye sistem tepsisi simgesi ekleyebilirsiniz. (İşletim sistemi, varsayılan menü sağlamaz.) Sistem tepsisi simge menülerine simgeyi sağ tıklatarak erişin.

Sistem tepsisi simge araç ipuçları

Araç ipucu özelliğini ayarlayarak simgeye araç ipucu ekleyebilirsiniz:

NativeApplication.nativeApplication.icon.tooltip = "Application name"; 

Sistem tepsisi simge olayları

NativeApplication.nativeApplication.icon özelliği tarafından başvurulan SystemTrayIcon nesnesi, click, mouseDown, mouseUp, rightClick, rightMouseDown ve rightMouseUp olayları için bir ScreenMouseEvent gönderir. Bu olayları simge menüsüyle birlikte, görünür pencere olmadığında kullanıcıların uygulamanızla etkileşim kurmasına izin vermek için kullanabilirsiniz.

Örnek: Pencere içermeyen bir uygulama oluşturma

Aşağıdaki örnek, bir sistem tepsisi simgesi içeren, ancak görünür pencere içermeyen bir AIR uygulaması oluşturur. (Uygulama tanımlayıcısında uygulamanın görünür özelliği true değerine ayarlanmamalıdır, yoksa uygulama başlatıldığında pencere görünür olacaktır.)

package 
{ 
    import flash.display.Loader; 
    import flash.display.NativeMenu; 
    import flash.display.NativeMenuItem; 
    import flash.display.NativeWindow; 
    import flash.display.Sprite; 
    import flash.desktop.DockIcon; 
    import flash.desktop.SystemTrayIcon; 
    import flash.events.Event; 
    import flash.net.URLRequest; 
    import flash.desktop.NativeApplication; 
 
    public class SysTrayApp extends Sprite 
    { 
        public function SysTrayApp():void{ 
            NativeApplication.nativeApplication.autoExit = false; 
            var icon:Loader = new Loader(); 
            var iconMenu:NativeMenu = new NativeMenu(); 
            var exitCommand:NativeMenuItem = iconMenu.addItem(new NativeMenuItem("Exit")); 
                exitCommand.addEventListener(Event.SELECT, function(event:Event):void { 
                    NativeApplication.nativeApplication.icon.bitmaps = []; 
                    NativeApplication.nativeApplication.exit(); 
                }); 
 
            if (NativeApplication.supportsSystemTrayIcon) { 
                NativeApplication.nativeApplication.autoExit = false; 
                icon.contentLoaderInfo.addEventListener(Event.COMPLETE, iconLoadComplete); 
                icon.load(new URLRequest("icons/AIRApp_16.png")); 
                 
                var systray:SystemTrayIcon =  
                    NativeApplication.nativeApplication.icon as SystemTrayIcon; 
                systray.tooltip = "AIR application"; 
                systray.menu = iconMenu; 
            } 
 
            if (NativeApplication.supportsDockIcon){ 
                icon.contentLoaderInfo.addEventListener(Event.COMPLETE,iconLoadComplete); 
                icon.load(new URLRequest("icons/AIRApp_128.png")); 
                var dock:DockIcon = NativeApplication.nativeApplication.icon as DockIcon;  
                dock.menu = iconMenu; 
            } 
        } 
         
        private function iconLoadComplete(event:Event):void 
        { 
            NativeApplication.nativeApplication.icon.bitmaps = 
                [event.target.content.bitmapData]; 
        } 
    } 
} 
Not: Flex WindowedApplication bileşenini kullanırken, WindowedApplication etiketinin visible niteliğini false değerine ayarlamanız gerekir. Bu nitelik uygulama tanımlayıcısındaki ayarın üzerine geçer.
Not: Örnek, uygulamanın icons alt dizininde AIRApp_16.png ve AIRApp_128.png adlı görüntü dosyaları olduğunu varsayar. (Proje klasörünüze kopyalayabileceğiniz örnek simge dosyaları AIR SDK'da mevcuttur.)

Pencere görev çubuğu simge ve düğmeleri

Pencerelerin simgelenmiş temsilleri, kullanıcıların arka plandaki veya simge durumuna küçültülmüş pencerelere kolayca erişebilmeleri için, genellikle dock veya görev çubuğunun pencere alanında görüntülenir. Mac OS X dock'u, simge durumuna küçültülen her pencerenin yanı sıra, uygulamanız için de bir simge görüntüler. Microsoft Windows ve Linux görev çubukları, uygulamanızda yer alan normal türdeki her pencere için program simgesi ve başlığı içeren bir düğme görüntüler.

Görev çubuğu pencere düğmesini vurgulama

Bir pencere arka planda olduğunda, pencereyle ilişkin ilgilendiği bir olayın gerçekleştiğini kullanıcıya bildirebilirsiniz. Mac OS X'te, kullanıcıyı uygulama dock simgesini zıplatarak bilgilendirebilirsiniz (Dock'u zıplatma bölümünde açıklandığı gibi). Windows ve Linux'ta, NativeWindow örneğinin notifyUser() yöntemini çağırarak pencere görev çubuğu düğmesini vurgulayabilirsiniz. Yönteme iletilen type parametresi, bildirimin aciliyetini belirler.

  • NotificationType.CRITICAL: kullanıcı pencereyi ön plana getirene kadar, pencere simgesi yanıp söner.

  • NotificationType.INFORMATIONAL: pencere simgesi renk değiştirerek vurgulanır.

    Not: Linux'ta yalnızca bilgilendirici bildirim türü desteklenir. notifyUser() işlevine herhangi bir türdeki değerin iletilmesi aynı etkiyi yaratacaktır.

    Aşağıdaki ifade, bir pencerenin görev çubuğu düğmesini vurgular:

    stage.nativeWindow.notifyUser(NotificationType.CRITICAL); 

    İşletim sisteminde pencere düzeyinde bildirimi desteklemeyenNativeWindow.notifyUser() yönteminin çağrılması etkisizdir. Pencere bildiriminin desteklenip desteklenmediğini belirlemek için NativeWindow.supportsNotification özelliğini kullanın.

Görev çubuğu düğmeleri veya simgeleri içermeyen pencereler oluşturma

Windows işletim sisteminde, utility veya lightweight türüyle oluşturulan pencereler görev çubuğunda görünmez. Görünür olmayan pencereler görev çubuğunda da görüntülenmez.

İlk pencerenin normal türünde olması gerektiğinden, görev çubuğunda görünen herhangi bir pencere içermeyen bir uygulama oluşturmak için ilk pencereyi kapatmalı veya görünmez olarak bırakmalısınız. Uygulamayı iptal etmeden uygulamanızdaki tüm pencereleri kpatmak için, son pencereyi kapatmadan önce NativeApplication nesnesinin autoExit özelliğini false olarak ayarlayın. İlk pencerenin görünür olmasını engellemek için, uygulama tanımlayıcı dosyasının <initalWindow> öğesine <visible>false</visible> özelliğini ekleyin (ve visible özelliğini true olarak ayarlamayın veya pencerenin activate() yöntemini çağırmayın).

Uygulama tarafından açılan yeni pencerelerde, pencere yapıcısına iletilen NativeWindowInitOption nesnesinin type özelliğini NativeWindowType.UTILITY veya NativeWindowType.LIGHTWEIGHT olarak ayarlayın.

Mac OS X'te, simge durumuna küçültülen pencereler dock görev çubuğunda görüntülenir. Pencereyi simge durumuna küçültmek yerine gizlediğinizde, küçültülen simgenin görüntülenmesini engelleyebilirsiniz. Aşağıdaki örnek bir nativeWindowDisplayState değişiklik olayını dinler ve pencere simge durumuna küçültüldüğünde bu olayı iptal eder. Bunun yerine işleyici, pencerenin visible özelliğini false olarak ayarlar:

private function preventMinimize(event:NativeWindowDisplayStateEvent):void{ 
    if(event.afterDisplayState == NativeWindowDisplayState.MINIMIZED){ 
        event.preventDefault(); 
        event.target.visible = false; 
    } 
} 

Mac OS X dock'unda bir pencere simge durumuna küçültülmüşse, visible özelliğini false olarak ayarladığınızda dock simgesi kaldırılmaz. Kullanıcı yine de, pencerenin yeniden görünmesi için simgeyi tıklatabilir.