Mehmetoglu.org ActionScript 3 Dersleri - 6 [Düğme ve Mc 'lere Dinleyici Eklemek]

Posted on Cuma, Mart 7th, 2008 at 08:00

Not: (” Tırnak) işaretlerini kodlamada yeniden yazmanız gerekmektedir.

Bu dersimizde film kliplerine(movie clip) ve butonlara fareye duyarlı görevler atamayı öğreneceğiz. 

 Önce örnek bir fonksiyon yazalım. Bunu kodlamanıza taşımayalım

 function yukariCik() {

             kutucuk_mc.width -= 5;

}

Biz bu fonksiyonu doğru şekilde biçimlendirip bir film klibi ya da butona tıklanınca çalış şeklinde tanımlayacağız. Şimdilik kodlama paneline yukariCik(); yazdığımız anda çalışıyor.

İlk olarak ana sahneye bir kutucuk çizin. Daha sonra bu kutucuğu seçerek F8 tuşuna basın. Gelen seçenekler içinden Film klibini işaretleyin ve isim yazarak onaylayın. Şimdi Film klibine dönüşmüş olan kutucuğu seçin ve Properties panelini açın. (Ctrl + F3) Durum adını(Instance name) kutucuk_mc olarak belirleyin.

Tamamen bu yolları izleyerek birde buton oluşturun. Bu kez değiştirmeniz gereken tek şey durum adı. Butonunuzun durum adını butoncuk_btn olarak isimlendirin.

 Şimdi butoncuk_btn için bir fonksiyon yazalım. Unutmayın ki ActionScript 3 ile birlikte butonlara direkt kod yazma kaldırıldı. Bu yüzden kodları Timeline’ da ilgili framelere yazabiliriz.

F9 ile ActionScript 3 kod panelini açıyoruz;

///////////// Kodlamalar buradan itibaren başlamıştır.

/* Dinleyici dediğimiz şey aslında fonksiyondur. Bir fonksiyon oluşturur ve isimlendiririz. Daha sonra bu dinleyiciyi butonumuza ekleriz. (butoncuk_btn.addEventListener) */

// Öncelikle Türkçe bir dinleyici örneği

// fonksiyon yukariCik(olay:FareOlayı):değerDöndürme {

// yapılacaklar;

// } 

// Ve hemen ardından orjinali

function yukariCik(event:MouseEvent):void {
  kutucuk_mc.y -= 5;
}

// Şimdide bu dinleyiciyi addEventListener komutu ile butonumuza ekleyeceğiz. 

 butoncuk_btn.addEventListener(MouseEvent.CLICK, yukariCik)

/* Türkçesi

butoncuk_btn.addEventListener - butoncuk_btn durum adlı sembolüme dinleyici ekle

butoncuk_btn.addEventListener(MouseEvent - Fare olayı ile çalış

butoncuk_btn.addEventListener(MouseEvent.CLICK - Fareye baskı yapılıp çekince çalış

butoncuk_btn.addEventListener(MouseEvent.CLICK ,yukariCik) - yukariCik adlı dinleyiciyi ekle

Diğer fare etkileşimlerine örnekler vermemiz gerekirse;

CLICK - Bastırılıp çekilinceMOUSE_OVER - Fare işaretçisi butonun üzerine getirildiğinde MOUSE_OUT - Fare işaretçisi butonun üzerine getirilip geri kaçırıldığında

MOUSE_DOWN - Fare sol düğmeye baskı yapıldığı anda

MOUSE_UP - Fare işaretçisi butonun üzerine getirilip, bastırılıp, yine üzerindeyken geri bırakıldığında

MOUSE_MOVE - Fare işaretçisi butonun üzerinde hareket ettirildikçe çalışır

Dinleyici yazmayı ve bir butona bu dinleyiciyi eklemeyi öğrendik. Aynı şekilde film klibimiplerimize de dinleyiciler ekleyebiliriz. Kod yazımında ise değişen hiç birşey yok. Yani: kutucuk_mc.addEventListener…

Ayrıca film klibimiz ve fare etkileşimini, el işareti görseliyle kullanabilmek için >>

kutucuk_mc.buttonMode = true;

*/

function asagiIn(event:MouseEvent):void {
  kutucuk_mc.y += 5;
}

 kutucuk_mc.addEventListener(MouseEvent.CLICK, asagiIn)
 
 kutucuk_mc.buttonMode = true;

_____________________________________________ 

Sonuç >> http://www.mehmetoglu.org/as3_dersler/ders_06.swf

Proje dosyası >> http://www.mehmetoglu.org/as3_dersler/ders_06.fla

Kaynak: www.mehmetoglu.org | Kaynak gösterilmeden yayınlanması ayıp ve yasaktır

İstersen yorum yazabilirsin, ya da kendi sitenden "geridönüş" (trackback) ekleyebilirsin.

9 Yorum yazılmış

 1 
deniz:

abi ellerin dert görmesin herşeyi çok güzel anlatmışsın. ben yaptım bunların alayını herşey çok guzel çalışıyor. fakat tek sorun bunu nasıl kaydedıp basit bi html dosyasında kullanıcagım… :)

Haziran 6th, 2008 at 15:05
 2 

Anlatımımı anlayabilmen beni mutlu eder. :) Ben teşekkür ederim..

Export swf ile kaydettiğin swf dosyasını hosta attıktan sonrası html bilgine kalıyor. oda basit olarak

embed src="http://siten.com/dosya.swf"

biraz html çalışmalısın önce. :) sevgilerle…

Haziran 7th, 2008 at 05:48
 3 

swf olarak kaydetmeyı bılmiyordum flash üzerinde. html bilgim az buçuk var. :) teşekkür ederim :)

Haziran 7th, 2008 at 12:35
 4 

bu arada benım hala sorunum var. yalnız konusu burası deıl ama sorıyım ben yınede. sayfanızda bulamadım o konuyu. butonlara link veriyorum ama istediğim frame de açamıyorum o linki. onu nasıl halledicez?

Haziran 7th, 2008 at 14:39
 5 

Selamlar Deniz. :)

Sorununu tam olarak anlayamadım. Yani birinci framede link verdiğin butonun 5. framede çalışmıyormu?

Haziran 7th, 2008 at 18:39
 6 

yok deil. Şimdi sayfaya butonu koydum diyelim. butonun bı yanındakı tabloyada iframe yerleştirdim. Butona tıkladıgımda gereklı sayfanın o iframede açılmasını istiyorum. beceremedım…. actionscript 3 te target bölümüne _self yazıyor diyelim. onun yerine ben o iframein ismini yazdıgımda olmuyor. nedir bunun çözumu acab?

Haziran 7th, 2008 at 23:04
 7 

Şimdi anlıyorum sanırım..

Malesft flash içinde direkt olarak include html göstermek mümkün değil maleseft. Ama verileri alıp yazınsal yada resimsel olarak kafana göre derleyebilirsin. Loader sınıfını inceleyebilirsin bu konuda. Php ,xml yada html farketmez..

Haziran 8th, 2008 at 01:11
 8 

hmm teşekkür ederim.inceliyim bi. beni aşıcak heralde sanırsam :)

çok saol yanıtların tekrar :)

Haziran 8th, 2008 at 08:15
 9 

yok neden aşsın yahu :) eğer yavaş yavaş sabırla azimle öğrenirsen sınıfları kolaylıkla kavrarsın. Loader sınıfına sıra geldiğinde gendine güvenin çok daha artmış olur ;)

Haziran 8th, 2008 at 13:13

Yazmayan ölsün..

Adın
e-Postan (Yayımlarsam ne olim)
Siten
Gençliğini neyle değerlendirdin?
Yorumun: