Yerel menüler oluşturma (AIR)

Adobe AIR 1.0 ve üstü

Bu başlık, AIR tarafından desteklenen çeşitli türlerdeki yerel menülerin nasıl oluşturulduğunu açıklar.

Root menu nesnesi oluşturma

Menü kökü olarak görev yapacak bir NativeMenu nesnesi oluşturmak için NativeMenu yapıcısını kullanın:

var root:NativeMenu = new NativeMenu(); 

Kök menü, uygulama ve pencere menüleri için menü çubuğunu temsil eder ve yalnızca alt menüleri açan öğeleri içermelidir. Bağlam menüsü ve açılır menüler menü çubuğu içermez. Bu nedenle kök menü, alt menülerin yanı sıra komutlar ve ayırıcı da içermelidir.

Menü oluşturulduktan sonra, menü öğelerini ekleyebilirsiniz. Öğeleri belirli bir dizine menu nesnesinin addItemAt() yöntemini kullanarak eklemediğiniz sürece, öğeler menüye eklendikleri sıraya göre görüntülenir.

Menüyü uygulama, pencere, simge veya bağlam menüsü olarak atayın veya aşağıdaki bölümlerde gösterildiği gibi açılır menü olarak görüntüleyin:

Uygulama menüsünü ayarlama veya pencere menüsü

Kodunuzun hem uygulama menülerine (Mac OS'de desteklenen) hem de pencere menülerine (diğer işletim sistemlerinde desteklenen) uyum sağlaması önemlidir.

var root:NativeMenu = new NativeMenu(); 
if (NativeApplication.supportsMenu) 
{ 
    NativeApplication.nativeApplication.menu = root; 
} 
else if (NativeWindow.supportsMenu) 
{ 
    nativeWindow.menu = root; 
}
Not: Mac OS, her uygulama için standart öğeler içeren bir menü tanımlar. NativeApplication nesnesinin menu özelliğine yeni bir NativeMenu nesnesinin atanması, standart menüyü değiştirir. Değiştirmek yerine, standart menüyü de kullanabilirsiniz.

Adobe Flex tüm platformlar arasında çalışan menüleri kolayca oluşturmak için bir FlexNativeMenu sınıfını sağlar. Flex Framework kullanıyorsanız, NativeMenu sınıfı yerine FlexNativeMenu sınıflarını kullanın.

Etkileşimli bir nesnede bağlam menüsünü ayarlama

interactiveObject.contextMenu = root;

Dock simgesi menüsünü ayarlama veya sistem tepsisi simgesi menüsü

Kodunuzun hem uygulama menülerine (Mac OS'de desteklenen) hem de pencere menülerine (diğer işletim sistemlerinde desteklenen) uyum sağlaması önemlidir.

if (NativeApplication.supportsSystemTrayIcon) 
{ 
    SystemTrayIcon(NativeApplication.nativeApplication.icon).menu = root; 
} 
else if (NativeApplication.supportsDockIcon) 
{ 
    DockIcon(NativeApplication.nativeApplication.icon).menu = root; 
}
Not: Mac OS X, uygulama dock simgesi için standart bir menü tanımlar. DockIcon nesnesinin menu özelliğine yeni bir NativeMenu atadığınızda, bu menüdeki öğeler standart öğelerin üzerinde görüntülenir. Standart menü öğelerini kaldıramaz, değiştiremez veya bu öğelere erişemezsiniz.

Menüyü açılır menü olarak görüntüleme

root.display(stage, x, y); 

Alt menü oluşturma

Alt menü oluşturmak için, üst menüye bir NativeMenuItem nesnesi ekleyin ve daha sonra öğenin submenu özelliğine alt menüyü tanımlayan NativeMenu nesnesini atayın. AIR, alt menü öğeleri ve bu öğelere ilişkin menü nesneleri oluşturmak için iki yol sunar:

addSubmenu() yöntemiyle bir menü öğesi ve buna ilişkin menü nesnesini tek bir adımda oluşturabilirsiniz:

var editMenuItem:NativeMenuItem = root.addSubmenu(new NativeMenu(), "Edit"); 

Menü öğesini oluşturabilir ve menü nesnesini submenu özelliğine ayrıca da atayabilirsiniz:

var editMenuItem:NativeMenuItem = root.addItem("Edit", false); 
editMenuItem.submenu = new NativeMenu(); 

Menü komutu oluşturma

Menü komutu oluşturmak için menüye bir NativeMenuItem nesnesi ve menü komutunu uygulayan işleve başvuran bir olay dinleyicisi ekleyin:

var copy:NativeMenuItem = new NativeMenuItem("Copy", false); 
copy.addEventListener(Event.SELECT, onCopyCommand); 
editMenu.addItem(copy);

Select olayını komut öğesinin üzerinde dinleyebilir (örnekte gösterildiği gibi) veya select olayını üst menü nesnesinde dinleyebilirsiniz.

Not: Alt menüleri ve ayırıcı satırları temsil eden menü öğeleri, select olayları göndermez ve bu nedenle komut olarak kullanılamaz.

Menü ayırıcı satırı oluşturma

Ayırıcı satır oluşturmak için, yapıcıdaki isSeparator parametresini true olarak ayarlayarak bir NativeMenuItem oluşturun. Daha sonra ayırıcı öğeyi doğru yerdeki menüye ekleyin:

var separatorA:NativeMenuItem = new NativeMenuItem("A", true); 
editMenu.addItem(separatorA);

Ayırıcı için belirtilen bir etiket varsa, görüntülenmez.