Soru - Cevap Bölümü
/ Kategori: Programlama
Selamlar,
aynı boyutlarda 2 adet MovieClip|Text|Grafik üst üste iken, üsteki objeyi yokmuş gibi gösterebiliyor muyuz?
Örneğin bir kare üzerine yazılmış dinamik Text; fare ile dinamik text e tıklasam bile, altındaki kare ye tıklamış sayılması..
Cevaplar
( Faydalı Cevapları Göster )
Eğer doğru anlamışsam bunu basit bir yolla çözebilirsin.Verdiğin örnekten yola çıktığımız zaman, bir movieclip in üzerinde bir dinamik text varsa doğal olarak dinamik text in kapladığı alana tıkladığında movieclip e tıklamış olamayacaksın.Ancak movieclip için yazdığın eventlistener ın aynısını dinamik text için de yazarsan, biraz hileli bir yolla dinamik text e tıkladığında movie clip için yazdığın fonkisyon çalışır ve sanki movieclip e tıklamış gibi olursun.Tabii ki bu biraz hileli bir yöntem çünkü aslında movieclip e değil dinamik text e tıklamış oluyorsun.Daha doğru yöntemi bilen arkadaşlar bizimle paylaşırlarsa seviniriz.
Aşağıdaki örnekte ekranda mc1 instance name li bir movieclip ve yazi instance name li bir dinamik text olduğunu varsayarsak,söylediğim yöntem gayet basit oluyor.Dinamik text ede tıklarsan sonucta tikla fonksiyonu calisacaktir.
function tikla(event:MouseEvent):void{
trace ("tıklandı");
}
mc1.addEventListener(MouseEvent.CLICK,tikla);
yazi.addEventListener(MouseEvent.CLICK,tikla);
Extra bir bilgi olarak eğer "yazi.selectable = false;" yazarsan da dinamik text in seçilebilir özelliğini de iptal edebilirsin.
Bunun dışında belki swapChildren(nesne1, nesne2; ile de yapılabilir.Örnek olarak üsteki nesnenin üzerine mouse ile gelince geçici bir süre için alttakini yukarı çıkarak seçilmesi sağlanabilir.Tıklama işlemi bitince de aynı yöntemin tersi ile tekar alta alınarak eski haline getirilebilir.
Daha doğru yöntemi bilen arkadaşlar bizimle paylaşırlarsa seviniriz.
salih merhaba, dogru yontem yukarida yazdigim linklerde aciklaniyor. Anahtar kelime Event Propagation.
teşekkürler salih ve veli, "event propagation" daha doğrusu "event path" sırasını kavradıktan sonra sadece sorunumu çözmekle kalmayıp "event handling" adına bir çok şey öğrendim..
Veli’nin verdiği dökümanın ilerleyen sayfalarında .mouseEnabled özelliğini keşfettim, herhangi bir objeye "obje.mouseEnabled = false" değerini verdiğimizde de aynı şekilde mouse olaylarını es geçirtebiliyoruz.
Alternatif olarak:
kare_mc.addEventListener(MouseEvent.MOUSE_DOWN,tikla);
function tikla(e:Event) {
trace(e.currentTarget);
}
Kerem şu verdiğin kod varya beni çok büyük bir dertten kurtardı. Saç baş yoluyordum 2 gündür :D alamm yaa. Teşekkür ederim.
Etkinlikler
Yarışma
5.İstanbul Animasyon ve Görsel Efekt Kısa Film Yarışması
5.İstanbul Animasyon ve Görsel Efekt Kısa Film Yarışması
5.İstanbul Uluslararası Animasyon Festivali, 24-30 Kasım 2008 tarihleri arasında gerçekleştirilecektir. Festival dahilinde gerçekleşen 5. İstanbul Ani...
Kategori:
Yarışma
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 722 (0 kayıtlı, 722 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Neler Yapılabilir?
Yeni bir portal, 30 civarında online / offline etkinlik, seminer vb rağmen MMIstanbul sanıyoruz ki halen hakettiği ilgiyi göremedi. " ...
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız









Sorunu orneklemen cozumu hemen sagladi: http://livedocs.adobe.com/flex/3/html/help.html?content=events_08.html http://www.adobe.com/devnet/actionscript/articles/eventhandlingas3_03.html
Bu iki dokumani dikkatli tara. Ingilizce problem olsa dahi grafik, semalar ve ornek kod parcalari konuyu anlasilir kilacaktir.