Bu örneğimizde geliştirdiğimiz uygulamalarda farenin sağ tuşuna tıklandığında açılan menüyü özelleştireceğiz. Bu işlem için ContextMenu sınıfını kullanacağız. Eğer bu menüyü özelleştirmediysek default hali aşağıdaki gibidir. Menüyü default hali ile kullandığımızda bazen uygulamalarımızda küçük sorunlar oluşabilir. Örneğin,uygulamada birden fazla frame var ve kullanıcının bir sonraki frame’e doğru işlemi yapmadan geçmesini istemiyoruz. Uygulamamızı buna göre hazırladık. Fakat ContextMenu’yu değiştirmezsek kullanıcı burada bulunan İleri seçeneğine tıklayarak bir sonraki frame’e geçiş yapabilir.

Şimdi bu menüyü özelleştirmeye başlayalım. Yukarıda da bahsetmiş olduğum gibi bu işlem için ContextMenu sınıfını kullanacağız. Bu da demek oluyor ki ilk olarak bu sınıfa ait bir nesne tanımlamamız gerekiyor.
Nesnemizi tanımladıktan sonra menü öğelerini gizleyelim ve contextMenu nesnesine değer olarak atayalım.
contextMenu = menum;
Menüde bulunan seçenekleri gizledik. Şimdi de kendimize özel bir menü oluştutalım. Oluşturacağımız menü ögeleri için ContextMenuItem sınıfını kullanacağız.
var copyRight = new ContextMenuItem("© 2010");
Bu menüde copyRight isimli menüsü ile işlem yapılmasını engelleyelim ve diğer menü ögelerinden ayıralım. Bunu yapabilmek için de menü ögesinin separatorBefore özelliğinin değerini true olarak değiştireceğiz.
copyRight.separatorBefore=true;
Oluşturduğumuz menü ögelerini ekleyelim.
Uygulamamızı çalıştırıp farenin sağ tuşuna tıkladığımızda menünün görünümü yandaki gibi olacaktır. Şimdi de menü ögelerine olay dinleyicileri nasıl ekleyebileceğimize bakalım. Kullanağımız olay sınıfı ContextMenuEvent olacak. Bu olay sınıfı içerisinde MENU_SELECT ve MENU_ITEM_SELECT olmak üzere iki nesne bulunmaktadır. Bu uygulamada MENU_ITEM_SELECT nesnesini kullanacağız.
siteAdresim isimli menü ögesi seçildiğinde belirlemiş olduğumuz bir sayfanın tarayıcıda açılmasını sağlayalım. siteAdresim isimli menü ögesine olay dinleyicimizi ekleyelim ve fonksiyonumuzu oluşturalım.
function siteyeGit(e:ContextMenuEvent){
navigateToURL(new URLRequest("http://actionscript.gen.tr"), "_blank");
}
Kodların tamamı aşağıdaki gibidir.
menum.hideBuiltInItems();
contextMenu = menum;
var siteAdresim = new ContextMenuItem("Türkiye'nin ActionScript Portalı");
var copyRight = new ContextMenuItem("© 2010");
copyRight.enabled=false;
copyRight.separatorBefore=true;
menum.customItems.push(siteAdresim, copyRight);
siteAdresim.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, siteyeGit);
function siteyeGit(e:ContextMenuEvent){
navigateToURL(new URLRequest("http://actionscript.gen.tr"), "_blank");
}
Eğer default menü ögelerinin tamamını gizlemek yerine bazılarını gizlemek isterseniz, aşağıdaki yöntemi kullanabilirsiniz. Yapmanız gereken görünmesini istediğiniz özelliklerin değerlerini true olarak değiştirmeniz.
menum.builtInItems.forwardAndBack = false;
menum.builtInItems.loop = false;
menum.builtInItems.play = false;
menum.builtInItems.print = false;
menum.builtInItems.quality = false;
menum.builtInItems.rewind = false;
menum.builtInItems.save = false;
menum.builtInItems.zoom = false;
contextMenu = menum;


#1 by deha on 21 Ekim 2010 - 10:02
süper yaa