Bu örneğimizde RadioButton bileşeninin kullanımını anlatacağım. Örnekte sahne üzerinde bulunan bir MovieClip nesnesinin rengini RadioButton’lar sayesinde değiştireceğiz.
Yeni bir ActionScript 3.0 belgesi açarak uygulamamıza başlayalım. Sahne boyutunu 625 x 300 piksel olarak değiştirelim ve Window menüsünün altında bulunan Components sekmesine tıklayalım ya da Ctrl+F7 kısayol tuşlarını kullanarak Components panelini açalım. Components panelinde User Interface sekmesinin altınna bulunan RadioButton seçeneğine çift tıklayalım. Bu sayede RadioButton bileşenini sahneye eklemiş olduk. Sahne üzerinde bulunan RadioButton bileşenini seçelim ve silelim. Bileşeni sahne üzerine ekleme işlemini ActionScript 3.0 ile gerçekleştireceğiz.
Şimdi de sahne üzerine bir 400×250 piksel boyutunda bir dikdörtgen çizelim. Dikdörtgenin x konumunu 200 piksel, y konumunu ise 25 piksel olarak değiştirelim ve MovieClip olarak sembole dönüştürelim. Sembolü seçerek Instance Name kısmına dikdortgen_mc yazalım.
Timeline’da yeni bir layer ekleyelim ve layer ismini Actions olarak değiştirelim. F9 kısayol tuşu ile Actions panelini açalım ve kodları yazmaya başlayalım. İlk olarak gerekli sınıfları import ediyoruz.
import fl.controls.RadioButtonGroup;
Gerekli sınıfları import ettikten sonra kullanacağımız RadioButton nesnelerini tanımlayalım. RadioButton nesnelerini tanımladıktan sonra ise RadioButtonGroup nesnesi tanımlayacağız. Böylece grup içerisinde bulunan bir RadioButton seçildiğinde, aynı grupta bulunan başka bir RadioButton nesnesinin seçilmesini engellemiş olacağız.
var maviRB:RadioButton =new RadioButton();
var yesilRB:RadioButton =new RadioButton();
var rbGrup:RadioButtonGroup=new RadioButtonGroup("renkler");
Oluşturduğumuz MovieClip’in rengini değiştirebilmek için bir ColorTransForm nesnesi tanımlayalım ve RadioButton’ların özelliklerini belirleyelim. RadioButton bileşeni için iki temel özellik kullanacağız. Birisi label yani etiket özelliği. Bu özellik ile seçeneklerimizi RadioButton’ların yanına yazacağız. Diğer özellik ise value özelliği. Bu özellik, yapılan seçime göre arka planda ne yapılması gerektiği ile ilgili bilgileri saklıyor diyebiliriz. Örnek üzerinden gidecek olursak, yapılan seçime göre MovieClip’in alacağı renk bilgilerini value özelliğine ekleyeceğiz.
kirmiziRB.label="Kırmızı";
kirmiziRB.value=0xFF0000;
maviRB.label="Mavi";
maviRB.value=0x0000FF;
yesilRB.label="Yeşil";
yesilRB.value=0x00FF00;
Şimdi de RadioButton’ları sahneye ekleyelim. Oluşturduğumuz gruba dahil edelim ve konumlarını belirleyelim. X ve y konumlarını belirlerken move metodunu kullanacağız. Bu metoda göndereceğimiz ilk parametre x konumu, ikinci parametre ise y konumu olacaktır.
addChild(maviRB);
addChild(yesilRB);
kirmiziRB.group=maviRB.group=yesilRB.group=rbGrup;
kirmiziRB.move(25,25);
maviRB.move(25,50);
yesilRB.move(25,75);
Son olarak rbGrup nesnesine olay dinleyicimizi ekleyelim ve yapılan seçime göre dikdortgen_mc isimli nesnenin rengini değiştirelim. Fonksiyon içerisinde renkDegistir nesnesinin color özelliğine değer olarak seçilen RadioButton’un value değerini atıyoruz.
function renkKontrol(e:Event) {
renkDegistir.color=e.target.selection.value;
dikdortgen_mc.transform.colorTransform=renkDegistir;
}
Kodların tamamı aşağıdaki gibidir.
import fl.controls.RadioButtonGroup;
var kirmiziRB:RadioButton =new RadioButton();
var maviRB:RadioButton =new RadioButton();
var yesilRB:RadioButton =new RadioButton();
var rbGrup:RadioButtonGroup=new RadioButtonGroup("renkler");
var renkDegistir:ColorTransform=new ColorTransform();
kirmiziRB.label="Kırmızı";
kirmiziRB.value=0xFF0000;
maviRB.label="Mavi";
maviRB.value=0x0000FF;
yesilRB.label="Yeşil";
yesilRB.value=0x00FF00;
addChild(kirmiziRB);
addChild(maviRB);
addChild(yesilRB);
kirmiziRB.group=maviRB.group=yesilRB.group=rbGrup;
kirmiziRB.move(25,25);
maviRB.move(25,50);
yesilRB.move(25,75);
rbGrup.addEventListener(Event.CHANGE, renkKontrol);
function renkKontrol(e:Event) {
renkDegistir.color=e.target.selection.value;
dikdortgen_mc.transform.colorTransform=renkDegistir;
}


#1 by emre on 19 Temmuz 2010 - 07:22
Yeni örnek için çok teşekkürler.
Bu dersle ilgili bir sorum olacak
var rbGrup:RadioButtonGroup=new RadioButtonGroup(“renkler”); tanımlamasında tırnak içindeki “renkler” in ne gibi bir özelliği var.
Açıklarsanız sevinirim…
#2 by Erol Demirer on 19 Temmuz 2010 - 12:45
@emre;
Oradaki renklerin yerine istediğin herhangi bir şey yazabilirsin. Yazacaklarının String veri türünde olması yeterli. Açıklama bilgisi olarakta düşünebiliriz.
#3 by emre on 20 Temmuz 2010 - 06:34
yani orda bir anlamda label mantığı mı var?
“renkler” ‘i tanımladıktan sonra ne için kullanabilirim, ne işe yarayacaktır
şimdiden teşekkürler
#4 by Erol Demirer on 21 Temmuz 2010 - 19:19
Label mantığı yok. Dediğim gibi açıklama bilgisi olarak düşünebilirsin oradaki bilgiyi.
#5 by emre on 25 Temmuz 2010 - 13:16
çok sağ ol