Ç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.supportsDockIcon
true
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.supportsSystemTrayIcon
true
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 desteklemeyen
NativeWindow.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.
|
|
|