Kodlarındaki açıklamarı okuyunca bir kaç şeyi açıklayayım dedim
Olayı daha iyi anlamak için yeni bir AS3 dosyası aç.Bir movieclip yarat ve bunun kütüphanedeki Class ismi kare_mc olsun.İsminden de anlaşılacağı gibi içine sadece bir kare çiz.
frame kodumuz:
var kare:kare_mc = new kare_mc();
addChild(kare);
/////
kare.addEventListener(MouseEvent.MOUSE_DOWN,tikla);
function tikla(e:Event) {
trace(e.target);
}
Çalışmayı test edersen ve kareye basarsan karenin ismini görürsün.Yani kısacası this gitti event.target metodu geldi.
Şimdi şu kodu deneyelim:
var kare:kare_mc = new kare_mc();
addChild(kare);
/////
kare.degisken="as3";
////
kare.addEventListener(MouseEvent.MOUSE_DOWN,tikla);
function tikla(e:Event) {
trace(e.target);
trace(e.target.degisken);
}
Test edersen as3 kelimesini görürsün.Yani kare içine id atıp sonra bu id'yi event.target ile alıp istediğini yapabilirsin.
Tamamdır oldu bu iş dediğini duyar gibiyim

Ama yanılıyorsun.Şimdi kare_mc içine bir dinamik text at ve içine zoque yaz.
Çalışmanı test ve tam text üstüne tıkla

veeee hata geldi değil mi? Ama output penceresindeki ilk satıra dikkat et:
Yani aslında biz kare içindeki texte bastık ve bastığımız geldi.Aslında biz kare objesine, bu objenin tüm alt dallarına event ekleniyor. Peki ne yapmalıyız?
Ben çalışmalarımda basit bir yöntem kullanıyorum.Şimdi kare_mc içindeki çizim olan kareyi buton yap ve instance name kare_btn olsun.
frame kodumuz:
var kare:kare_mc = new kare_mc();
addChild(kare);
/////
kare.degisken="as3";
////
kare.kare_btn.addEventListener(MouseEvent.MOUSE_DOWN,tikla);
function tikla(e:Event) {
trace(e.target);
trace(e.target.parent.degisken);
}
Yeni kodumuzda event'i kare içindeki kare_btn a ekledik. event.target dediğimizde butonu görüyorduk.Ama değişken butonun üst dalında yani kare_mc objesindeydi.Ozaman biz de değişkeni almak için:
e.target.parent.degisken
diyoruz.Bundan sonra yapman gereken tek şey.Butonu en üste alıp içine girip çizimi hit bölümüne koymak
Ufak bir hatırlatma:
codesignist hocam da bu yöntemi kullanıyor :P
Kolay gelsin...