Sağ - Klik Menüsünü Özelleştirmek



DOSYAYI İNDİR

Uygulamaya geçmeden evvel yukardaki dosyaya sağ klik yapın. Farklı 4 seçeneğin eklendiğini göreceksiniz:

1- Animasyonu başlatmak

2- Animasyonu durdurmak

3- Arkaplan rengini değiştirmek ve yine eski şekline getirmek

4- Köpek sembolünün rengini değiştirmek ve eski şekline getirmek.

Açılan bu menülere tıklayarak swf dosyasının özelliklerini değiştirebilirsiniz. Animasyonu başlatabilir, durdurabilir veya sembol ve araplan renklerini değiştirebilirsiniz.

Yukardaki çalışma sağ klik menüsü ile yapılabilecek en basit işlemdir. Çok daha komplike çalışmalar yapılabilir. özellikle javascript desteği ile sağ-click menüsüne çok faklı özellikler eklemek mümkündür. Bunun için alttaki linkten dosyayı indirip inceleyebilirsiniz.

http://shock.globbo.org/tmp/rightclick/

Yukardaki dosyayı indirmek için burayı tıklayın.

Ayrıca Flash MX 2004 örneklerinde de benzer çalışmalar vardır.

C:\Program Files\Macromedia\Flash MX 2004\en\First Run\Samples\CustomizingContextMenu.fla dosyasını incelemenizi öneririm.

UYGULAMA:

1- Başlangıcında stop() komutu olan animasyonunuzu bir film klibi içinde oluşturun ve klibi sahneye yerleştirin. Instance name kısmına animasyon yazın. Bizim çalışmamızda köpek sembolünün rengini değiştirmek için resme Break Apart uygulanarak sembol özelliği kırıldı ve iç dolgu Magic Wand ile seçilip kesildi bir film klibi içine yerleştirilerek tam kesildiği alana yerleştirildi. Bundan amaç sembolün renk değişimi sırasında sadece iç alanındaki bölümün bu komuttan etkilenmesiydi. Bu iç dolguyu içeren klibin instance name alanına deri yazın.

2- 1.kareye şu komutu atayın:

yeni_menu = new ContextMenu();
yeni_menu.hideBuiltInItems();

//yeni_menu.builtInItems.print = true


yeni_menu.customItems.push(new ContextMenuItem("Animasyonu Başlat", basla));
yeni_menu.customItems.push(new ContextMenuItem("Animasyonu Durdur", durdur));
yeni_menu.customItems.push(new ContextMenuItem("Arkaplanı Mavi Renk Olsun ", mavi));
yeni_menu.customItems.push(new ContextMenuItem("Köpek Yeşil Renk Olsun", yesil));
yeni_menu.customItems.push(new ContextMenuItem("Köpek Eski Rengini Alsın", kopek));
yeni_menu.customItems.push(new ContextMenuItem("Arkaplan Eski Rengine Dönsün", arka));

function basla() {
_root.animasyon.play();
}

function durdur() {
_root.animasyon.stop();
}

function yesil() {
renk=new Color(_root.animasyon.deri);
renk.setRGB(0x6FD280)
}

function mavi() {
renk=new Color(_root.arkaplan);
renk.setRGB(0x007DBD);
}

function arka() {
renk=new Color(_root.arkaplan);
renk.setRGB(0xFFCF9C);
}

function kopek() {
renk=new Color(_root.animasyon.deri);
renk.setRGB(0xFFFF00);
}

_root.menu = yeni_menu;

Kod gruplarına Built-in Classes-->Movie-->Context Menu yoluyla ulaşabilirsiniz.

Önce yeni_menu = new ContextMenu(); komutu ile yeni_menu adında bir sağ klik menüsü oluşturuyoruz. Sonraki kod grubu olan yeni_menu.hideBuiltInItems(); opsiyonel bir uygulamadır.Sağ klik menüsünün orjinalinde olan tüm alanları kapatır(about,settings kısmı hariç). Üçüncü dizindeki aktif olmayan kod grubunda yeni_menu.builtInItems.print = true orjinal sağ klik menüsünden bulunmasını istediğiniz alanları göstermek için ekleyebilirsiniz. Burada print alanı korunmuştur.

İkinci bölümde bu yeni menümüze gerekli eklentilere yapacağız.
yeni_menu.customItems.push(new ContextMenuItem("Animasyonu Başlat", basla));
Bu dizinde "Animasyonu Başlat" adını taşıyan yeni bir sağ klik menü elemanı oluşturuluyor ve bu eleman yeni_menu adlı context menümüze ekleniyor. Parantez içindeki basla ise bir alt dizinde oluşturulacak fonksiyonun adıdır. Bu fonksiyonda oluşturulan sağ klik menüsüne tıklanınca yapılması gereken işlemler yazılır. Bu işlem basla fonksiyonunda yazıldığı gibi (_root.animasyon.play();) animasyonu başlatma komutudur. Şayet bu eklentiyi yapmazsanız menüde animasyonu başlat yazısını görürsünüz ama tıkladığınızda hiçbir fonksiyon oluşmaz. Diğer eklenti menülerde benzer şekilde oluşturulmuştur.

En son dizin _root.menu = yeni_menu; şeklindedir. Oluşturduğumuz menü sahneye atanmış ve uygulamaya girmiştir. Bu dizini eklemezseniz yukarda yazılan hiçbir kod çalışmayacaktır.

İlerleyen örneklerde çok daha komplike menü yapımı tanıtılacaktır.