| 3C İçeriklerini Takibe Al RSS

bekliyorumseni.com,Bedava Mp3 indir,bekliyorumseni,Film Seyret,izle, Dizi izLe,2009 FuLL ALbumLer,Oyun iNDir, Mp3 Dinle,Bedava Film İzle , Kurtlar Vadisi Pusu
Mp3FoRuMu.Net,Bedava Mp3 indir,Mp3forumu,Film Seyret,izle, Dizi izLe,2009 FuLL ALbumLer,Oyun iNDir, Mp3 Dinle,Bedava Film İzle , Kurtlar Vadisi Pusu

Olay Dinleyicileri(Event Listener) Mantığı Hakkında


MouseEvents

Olay dinleyicisi statik olarak tanımlanmış bir fonksiyona benzer. Ya da öyledir.. trace() ya da gotoAndStop(15) gibi fonksiyonlardan farkı yoktur. Yazım şekli addEventListener() biçimindedir.

gotoAndStop() fonksiyonu döndürmek için değişken olarak integer bir değeri kabul ediyor. (15) gibi.. Olay dinleyicisi fonksiyonunun beklediği ve sık kullandığımız iki değer olayın türü ve çalıştırılacak fonksiyondur.

Biz bu makalede fare olaylarını değerlendireceğiz. Diğer olaylarda yapı olarak benzer şekildedirler. Mantık bir olay bekleme, gerçekleştiğinde ise bizim istediğimiz fonksiyonu çalıştırma, bu fonksiyonada yardımcı bilgileri iletme şeklinde gerçekleşir.

Uygulama Önizlemesi:

Olayların türü string değer olarak alınır. addEventListener(“click”) ya da addEventListener(MouseEvent.CLICK) şeklinde değer gönderebilirsiniz. İkinci şekilde gönderim muhtemelen bir sınıf ya da string değerleden oluşan ağaç yapılı objeyi çağırıyor olabilir. Ancak sonuç olarak değeri “click”tir. Türü string’tir.

Birkaçı şöyledir:

“mouseOver” - Üzerine gelince (Fare, görev eklenmiş objenin alanına girince)

“mouseDown” - Fareye baskı uygulandığında

“mouseUp” - Uygulanan baskı son bularak kullanıcı fareden elini çekince

“mouseOut” - Üzerinden çekince (Fare, görev eklenmiş objenin alanından dışarı çıkınca)

ve “click” - Tıklatınca (Bastırılıp bırakılma olayı)

İkinci değer iste function() ‘dur. Şu şekilde yollayabilirsiniz. addEventListener(“click”,testf);

Böylece addEventListener fonksiyonuna “click” şeklinde bir string, ve testf şeklindede bir fonksiyon gönremiş olduk.

Fonksiyonuda tanımlamış olmamız gerekiyor.

function testf (e:Event) {

trace(e.target.name)

}

Bu fonksiyonu kendimiz tanımlıyoruz ancak görüldüğü gibi bir değişken beklemesi gerektiğini belirtiyoruz. e:Event yazdığımız zaman bütün olay türlerinde herhangi bir olayı yeni oluşturduğumuz e değişkenine getir demiş oluyoruz.

Burada “e” yerine istediğiniz terimi kullanabilirsiniz. gelecekOlayBilgileri gibi. Ancak değişken türü Event için o kadar özgür değiliz. Değişken olarak MouseEvent türünü ya da Object türünü kullanabilirsiniz.  function testf( gelecekOlayBilgileri:MouseEvent )

Mantığa gelelim. addEventListener(“click” , testf) derken movieclip yada kullanıyorsanız buton sınıfının içerisinde bulunan addEventListener fonksiyonuna iki değer göndermiş oluyoruz. addEventListener fonksiyonu ise kendine gönderilmiş olan testf fonksiyonunu kaydediyor. Gerektiği zaman yani tıklama gerçekleştiği zaman fonksiyonu çalıştırıyor. Ancak çalıştırmakla kalmayıp olay bilgilerini bu fonksiyona yani testf fonksiyonuna gönderiyor. Geri gönderdiği değerleri fonksiyon içinde kullanabiliyoruz. Bu değerlere örnek olarak, olay türü ya da görevlendirilmiş objenin ismi verilebilir.

Bu aşamadan sonra örneğin fonksiyon içinde kullanacağımız gelecekOlayBilgileri.target.name film klibinin adını taşımaya başlıyor. type değeri “click” olarak belirleniyor. Burada target hedef,name ise hedefin ismi olarak kullanılıyor.

Bir örnekle addEventListener fonksiyonunu kavramaya çalışalım.

Örneğimiz bir film klibinin buton gibi davranmasını, üzerine gelme ve üzerinden çekme gibi olaylara tepki vermesini sağlamak üzerine bir uygulama olsun.

Sahnede bilgi_txt durum adı’na(insance name) sahip bir dinamik(dynamic) metin kutu’muz(text box), bir de as3coder_mc durum adına sahip film klibimiz(MovieClip) olmalı.

/*
as3coder_mc adlı film kilibi'nin(MovieClip)
fare üzerine gelince el işareti çıkmasını sağlayalım
*/

as3coder_mc.buttonMode=true;

/*
as3coder_mc'nin üzerine gelinmesi olayını bekleyen bir görev ekleyelim.
Bu fonksiyondan da olay gerçekleştiğinde faref adlı fonksiyonu
çalıştırmsını isteyelim.
*/

as3coder_mc.addEventListener("mouseOver",faref);

// aynı şekilde üzerinden çekince
as3coder_mc.addEventListener("mouseOut",faref);

// aynı şekilde fareye baskı uygulanınca
as3coder_mc.addEventListener("mouseDown",faref);

// aynı şekilde fareye uygulanan baskı sonlanınca(kullanıcı elini
// çekince)
as3coder_mc.addEventListener("mouseUp",faref);

/*
addEventListener fonksiyonuna eklediğimiz bütün bu olaylar
gerçekleştiğinde şimdi yazacağımız fonksiyon çalışacak.

addEventListener fonksiyonu bu fonksiyonu çalıştırırken
faref fonksiyonuna değerler gönderecek. Bu değerlerin de
gelecekOlayBilgisi:Event şeklinde oluşturduğumuz
değişkene gelmesini sağlayalım.
*/

function faref(gelecekOlayBilgisi:Event) {

    /*
    Eğer gelecekOlayBilgisi değişkeninin type elemanı yani olay türü,
    mouseOver yani üzerine gelince ise, gelecekOlayBilgisi değişkeninin
    target elemanının yani hedef objenin alpha özelliğini 0.8 olarak
    değiştir.
    */

    if (gelecekOlayBilgisi.type=="mouseOver") {
        gelecekOlayBilgisi.target.alpha=.8;
        bilgi_txt.text="Fare üzerimde";

    // diğerlerini açıklamayacağım
    // fare düğme sınırlarından çıkınca
    } else if (gelecekOlayBilgisi.type=="mouseOut") {
        gelecekOlayBilgisi.target.alpha=1;
        bilgi_txt.text="Fare üzerimden ayrıldı";

    // fareye baskı uygulanınca
    } else if (gelecekOlayBilgisi.type=="mouseDown") {
        gelecekOlayBilgisi.target.alpha=.6;
        bilgi_txt.text="Baskı uygulandı";

    // fareye uygulanan baskı sonlanınca
    } else if (gelecekOlayBilgisi.type=="mouseUp") {
        gelecekOlayBilgisi.target.alpha=.8;
        bilgi_txt.text="Baskı sonlandırıldı";
       // navigateToURL(new URLRequest("http://as3coder.com"),"_blank");
    }
}

Not: Burada target bilgisi, görev eklenmiş film klibi içerisindeki film kliplerini temsil ediyor. Eğer içerideki film klipleri değilde en dışarıdaki film klibinin hedef bilgisini almak istiyorsanız film klibinin currentTarget özelliğini kullanmalısınız. Örnek: gelecekOlayBilgisi.currentTarget.alpha=.8; Bu konuda ayrıntılı bilgiyi, gelecek olan “Daha az Kod Yazarak Yüksek Sayıdaki Film Kliplerini Görevlendirmek” adlı makalede detaylı şekilde bulabileceksiniz.

Uyglama Dosyaları: http://as3coder.com/dosyalar/olayDinleyicileri.rar

_____________________________________________

Yorumlarınızda sorularınızı çekinmeden sorunuz. Her güncelleme google puanı demek (:

Burak AYDIN - www.mehmetoglu.org

4 Kişi değerlendirmiş to “Olay Dinleyicileri(Event Listener) Mantığı Hakkında”

  1. Yağız Gürgül Says:

    Bir de onReleaseOutSide’i anlatmak lazim :)


  2. Burak AYDIN Says:

    ehehe (: tm bir uygulamada ona da değinelim..

    umarım beğenmişlerdir..


  3. serkan Says:

    tesekkürler


  4. Burak AYDIN Says:

    birşey değil (:


Değerlendirmeniz nedir?