Olay Dinleyicileri (addEventListener)

 Sahnede gerçekleşen her şey bir olay olarak kabul edilir. Örneğin farenin tıklaması, klavyeden bir harf veya sayıya basılması, bir nesnenin yüklenmesi, sahnede sürekli tekrarlanan durumların olması, zamana bağlı durumlar ve daha birçok şey..
 Olayların gerçekleşmesi, olay dinleyicileri eklenirken belirtilen fonksiyonun tetiklenmesini sağlar.
Tetiklenen fonksiyonun süslü parantezleri arasındaki kod satırları çalıştırılır.


Dinleyici ekleme

Olay dinleyicilerini sahneye eklemek için öncelikle olay dinleyicisini nesneye eklemek gerekir. mcKare örnek ismine sahip bir nesneye olay dinleyicisi eklemek için sahneye bir kare çizelim ve kareyi film klibi haline dönüştürelim.
"Örnek Adı" (instance name) bölümüne mcKare ismini verelim.




mcKare nesnesine fareyle tıklandığında mcKareFnk
fonksiyonunu tetikleyip süslü parantezler arasındaki kod satırlarının çalışmasını sağlayalım. Süslü parantezler arasındaki trace metodu, output panelinde "Tıklandı" yazdiracaktir.

Not: Dinleyicilere tanımlanan fonksiyonların geri dönüşleri yoktur. Bu sebeple dönüş değerleri void tanımlanır.


mcKare.
addEventListener(MouseEvent.CLICK,mcKareFnk); function mcKareFnk(evt:MouseEvent):void{ trace("Tıklandı"); }


Uygulama esnasında eklediğimiz olay dinleyicisini iptal etmek isteyebiliriz. Bunu yapmak için removeEventListener komutunu kullanabiliriz.

Yukarıda mcKare ye eklediğimiz olay dinleyicisini kaldıralım.

mcKare.
removeEventListener(MouseEvent.CLICK,mcKareFnk);


KLAVYE KONTROLÜ

Bu uygulama yapalım. Uygulamamızda sahneye bir nesne ekleyip klavyedeki yön tuşları ile nesnemizi hareket ettirelim. Ekleyeceğimiz nesnenin adi mcDaire olsun.

Uygulama kodlarımızı yazmaya başlamadan önce sahnemizin koordinat sisteminden bahsedelim.

















Aşağıdaki kod satırlarında yön tuşlarına basarak mcDaire  isimli nesnemizi sağa, sola, yukarı ve aşağı doğru hareket ettireceğiz.

import flash.events.KeyboardEvent; stage.addEventListener(KeyboardEvent.KEY_DOWN,hareketFnk); //Dinleme işlemini başlattıyoruz. //Klavyeden bir olay gelirse hareketFnk //fonksiyonu çalıştırılır. function hareketFnk (evt:KeyboardEvent):void{ if(evt.keyCode==Keyboard.RIGHT){ //Eğer basılı tutulan tuş sağ yön tuşuysa //nesnemizi sağa doğru hareket ettiriyoruz. //mcDaire nesnesinin x koordinatını 5 arttırıyoruz. mcDaire.x +=5; }if(evt.keyCode==Keyboard.LEFT){ //Eğer basılı tutulan tuş sol yön tuşuysa //nesnemizi sola doğru hareket ettiriyoruz. //mcDaire nesnesinin x koordinatını 5 azaltıyoruz. mcDaire.x -=5; }if(evt.keyCode==Keyboard.UP){ //Eğer basılı tutulan tuş yukarı yön tuşuysa //nesnemizi yukarı doğru hareket ettiriyoruz. //mcDaire nesnesinin y koordinatını 5 azaltıyoruz. mcDaire.y -=5; }if(evt.keyCode==Keyboard.DOWN){ //Eğer basılı tutulan tuş aşağı yön tuşuysa //nesnemizi aşağı doğru hareket ettiriyoruz. //mcDaire nesnesinin y koordinatını 5 arttırıyoruz. mcDaire.y +=5; } }


Klavye komutları


KeyboardEvent : Klavye olaylarını tanımlayan sınıf. keyCode : Klavyeden basılan tuş bilgisini aldığımız komut.Bu komuta fonksiyondaki evt parametresi ile ulaşıyoruz. KeyboardEvent.KEY_DOWN : Klavyeden herhangi bir tuşa basılma anıdır. KeyboardEvent.KEY_UP : Klavyeden basılan herhangi bir tuşun bırakılma anıdır. Keyboard.UP : Klavyedeki yukarı yön tuşudur. Diğer tuşlar da aynı mantıkla kullanılır. Keyboard.DOWN : Klavyedeki aşağı yön tuşudur. Keyboard.RIGHT : Klavyedeki sağ yön tuşudur. Keyboard.LEFT : Klavyedeki sol yön tuşudur. Keyboard.A : Klavyedeki A tuşudur. Diğer tuşlar da aynı şekilde kullanılabilir.


Mouse Kontrolü


CLICK Farenin bir nesneye sol tuş ile tıklanıp bırakılma olayıdır. DOUBLE_CLICK nesne.doubleClickEnabled=true; Öncelikle yukarıdaki kod satırı ile nesnenin double click olayını aktif etmemiz gerekiyor. Farenin bir nesneye çift tıklama olayıdır. MOUSE_DOWN Farenin sol tuşuna basma olayıdır. Sol mouse tıklandığı an çalışır. MOUSE_UP Farenin sol tuşunu bırakma olayıdır. Sol mouse bırakıldığı an çalışır. MOUSE_OUT Farenin bir nesne üzerinden ayrılma olayıdır. MOUSE_MOVE Farenin nesne üzerinde gezme olayıdır. MOUSE_OVER Farenin nesne üzerine gelme olayıdır. MOUSE_WHEEL Farenin tekerleğinin döndürülme olayıdır. ROLL_OVER Farenin sol tuşunun basılı tutularak nesne üzerine gelme olayıdır. ROLL_OUT Farenin sol tuşunun basılı tutularak nesne üzerinden ayrılma olayıdır.


Bu blogdaki popüler yayınlar

Fonksiyonlar

Math Sınıfı