Türkiye Online Medya Araştırması

Bu dersimizde birçok etkileşimli uygulamada sıkça kullanılan "sürükle-bırak" uygulamasını örnek bir çalışma üzerinden anlatmaya çalışacağım.

Bu uygulama için aşağıdaki resimde gösterilen moviecliplerin ve dynamic text alanlarının oluşturulması gerekiyor. MMİstanbul

Sürüklenecek Movieclip instance adları: c1,c2,c3,c4,c5,c6

Hedef Movieclipler (Boş kutucuklar) instance adları: kutuc1, kutuc2, kutuc3, kutuc4

Dikkat edildiyse Ayrıca c5 ve c6 movieclipleri fazladan konularak kullanıcının bilgisini iyice test etmesi istenmektedir.

Uygulama Kodları:



//Sürüklenecek olan MovieClip(İller)instance adları dizide saklanıyor.

var c:Array=new Array("",c1,c2,c3,c4,c5,c6);

//MovieCliplerin ilk konumları belirleniyor.

var baslangickonum:Point=new Point();

//MovieClip sürükleme sayısı ve doğru sürüklenme 
//sayısını öğrenmek için değişkenler tanımlanıyor.

var denemeSayisi:int=0;
var dogruSayisi:int=0;

//Sürüklenecek moviecliplerin hepsine buton özelliği
//kazandırılıyor. 
//Ayrıca mouse'a basılı tutulduğunda ve bırakıldığında 
// tetiklenecek fonksiyonlar atanıyor.

for (var i:uint=1; i<c.length; i++)
{
    c[i].buttonMode=true;
    c[i].addEventListener(MouseEvent.MOUSE_DOWN,surukle);
    c[i].addEventListener(MouseEvent.MOUSE_UP,birak);
}

//Mouse'a basılı tutulduğunda çalışacak fonksiyon

function surukle(evt:MouseEvent):void
{
//Hangi movieclipe mouse ile basıldı ise o sürüklenmeye
//başlıyor.

    evt.currentTarget.startDrag();

//Sürüklenen movieclipin başlangıç konumu belirleniyor.

    baslangickonum.x=evt.currentTarget.x;
    baslangickonum.y=evt.currentTarget.y;

}

//Mouse bırakıldığında çalışacak fonksiyon

function birak(evt:MouseEvent):void
{

//kontrolEt(evt) fonksiyonu çağrılıyor.
    kontrolEt(evt);
}

//birak() fonksiyonu çalıştığında çalışacak fonksiyon

function kontrolEt(evt:MouseEvent)
{

//Sürüklenen movieclip artık sürüklenmiyor.

    evt.currentTarget.stopDrag();

//Sürüklenen movieclipin ismi öğrenilip 
// "kutu" adlı string ifadeyle birleştirilip hedefMc adlı
// değişkende tutuluyor.

    var hedefMc:String="kutu"+evt.target.name;

//hedefMc adlı değişkenin bir DisplayObject olduğu
 //belirtiliyor. 

    var hedef:DisplayObject=getChildByName(hedefMc);

// Sürüklenen movieclipin kutuların üzerine 
//bırakıldığında o kutu(hedef movieclipler kutuc1,....) 
//boş değilse ve kutunun instance adının sürüklenen
//movieclipin "hedef" adlı o anda oluşturulan instance
//adı ile aynı ise çalışacak komutlar belirleniyor.

    if (evt.target.dropTarget!=null&&evt.target.dropTarget.parent==hedef)
    {

//Hedef kutuya sürüklenen movieclip doğru yere
//bırakıldıysa tekrar sürüklenmemesi ve bırakılmaması 
//sağlanıyor.

        evt.currentTarget.removeEventListener(MouseEvent.MOUSE_DOWN,surukle);
        evt.currentTarget.removeEventListener(MouseEvent.MOUSE_UP,birak);

//Sürüklenen movieclipler kutu(kutuc1,..) moviecliplerin
//konumuna yerleştiriliyor.kutu moviecliplerin
//registration pointlerine dikkat etmek gerekiyor.
        evt.target.x=hedef.x;
        evt.target.y=hedef.y;

//DOğru yere sürüklenen moviecliplerin buton özelliği
//kaldırılıyor.

        evt.currentTarget.buttonMode=false;

//Her sürükleme işleminde doğru ve deneme sayıları
//artırılıyor ve bunlar stringe çevrilerek ekrandaki
// dinamik text alanlarında gösteriliyor.


        dogruSayisi++;
        denemeSayisi++;
        denemeSayisi_txt.text="Deneme Sayısı:"+String(denemeSayisi);
        dogruSayisi_txt.text="Doğru Sayısı:"+String(dogruSayisi);

    //Doğru sayısını kontrol eden fonksiyon çağrılıyor.
        sonuc(evt);

    } 

//Eğer sürüklenen movieclip doğru kutuya bırakılmadıysa
//ilk konumuna geri gönderiliyor ve deneme sayısı
//artırılıyor.

else
    {
        evt.currentTarget.x=baslangickonum.x;
        evt.currentTarget.y=baslangickonum.y;
        denemeSayisi++;
        denemeSayisi_txt.text="Deneme Sayısı:"+String(denemeSayisi);

    }

}

//Doğru sayısını kontrol eden sonuc() fonksiyonu 
//çalışıyor

function sonuc(evt:MouseEvent)
{

//Doğru sayısı 4 olursa çalışacak komutlar belirleniyor

    if (dogruSayisi==4)
        {

//Doğru sayısı 4 olunca "Tebrikler" iletisi
//ekranda gösteriliyor.

durum_txt.text="Tebrikler";

//Yanlış olan c5 ve c6 adlı  moviecliplerin sürükleme,
//bırakma ve buton özellikleri ortadan kaldırılıyor.

c5.removeEventListener(MouseEvent.MOUSE_DOWN,surukle);
c5.removeEventListener(MouseEvent.MOUSE_UP,birak);
c5.buttonMode=false;
c6.removeEventListener(MouseEvent.MOUSE_DOWN,surukle);
c6.removeEventListener(MouseEvent.MOUSE_UP,birak);
c6.buttonMode=false;
        } 

        // Doğru sayısı 4 değilse ekranda gösterilecek
        //ileti belirleniyor.

        else
        {
            durum_txt.text="Daha Çok Çalışmalısınız";
        }

}

MMİstanbul

Uygulama Dosyası:suruklebirak.rar

Yazan:Muttalip TULGAR

aç-kapa İçeriğin rss beslemesi kullanımda değil Yorumlar

Profili Göster
mehmet Tosun 8/07/2009

Tebrikler hocam. Elinize sağlık. Çok güzel bir anlatım olmuş...

Profili Göster
Muttalip TULGAR 8/07/2009

Teşekkürler Mehmet. Umarım işe yarar.

Profili Göster
Safa kızılkaya 11/07/2009

Hoş bir çalışma, kutlarım.

Yalnız küçük bir eksiklik var galiba: Kentlerden herhangi birini tıklayıp sonra o kenti kutuya bırakmaktan vazgeçtiğinizde de "deneme sayısı" artırılıyor. Vazgeçmeye hakkımız olmalı. Yalnızca kutuların bulunduğu bölge civarında bıraktığımızda deneme sayısı artırılmalı.

İlköğretimde bu tür interaktif araçların çok önemli olduğu açık. Bir set hazırlayıp tüm öğretmenlerin kullanımına açmak fikri bir ara zihnimi sarmıştı. Sonra zihnimi başka şeyler sardı, kaynadı gitti..

Tekrar kutlarım.

Profili Göster
Muttalip TULGAR 12/07/2009

Evet haklısınız, bu tür uygulamalarda vazgeçme hakkı olmalı. Ama "deneme sayısını" ödül-cezayı düşünerek değilde sadece sürükleme sayısını öğrenmek amacıyla oraya koymuştum.

"Bir set hazırlayıp tüm öğretmenlerin kullanımına açma fikri"ni tekrar canlandırmanızda büyük yararların ortaya çıkacağını düşünüyorum. Şunu çok iyi biliyorum ki; bir çok öğretmen buradaki ders,uygulama,soru-cevap bölümlerinden edindiği bilgi ile öğretim metaryali hazırlamaya çalışıyor. Fikrimce; yapacağınız katkı çok büyük bir sosyal fayda güdecektir. Katkılarınızı ilgiyle bekliyoruz.

Profili Göster
Salih Dincer 21/07/2009

Sevdiğim konulardan biri! Örneklendirerek anlattığınız için teşekkürler. Bunun gibi daha nicelerini arttırmanız dileğiyle...

Başarılar...

yeni üyelik | şifremi unuttum

aç-kapa Toplantı Özgür Yazılım ve Linux Günleri '10

Özgür Yazılım ve Linux Günleri '10

İstanbul Bilgi Üniversitesi Bilgisayar Bilimleri Bölümü ve Linux Kullanıcıları Derneği'nin 9 yıldır düzenlemekte oldukları etkinlikler bu yıl `Özgür Y...
Kategori: Toplantı

aç-kapa Yarışma 3. Uluslararası Ekslibris Yarışması: İstanbul 2010

3. Uluslararası Ekslibris Yarışması: İstanbul 2010

İstanbul Ekslibris Dernegi, Feyziye Mektepleri Vakfı ve Işık Üniversitesi, kitaplar için mülkiyet işareti olarak kabul edilen ve üzerinde estetik dege...
Kategori: Yarışma

aç-kapa Konferans Yeni Medya ve Etkileşim Konferansı 2010 - Marmara Üniversitesi

Yeni Medya ve Etkileşim Konferansı 2010 - Marmara Üniversitesi

Generally speaking, the term "New" brought about debates. We try to open up and elucidate the term "New" along with "Interact...
Kategori: Konferans

aç-kapa Konferans 3. Uluslararası Gelecek İçin Öğrenme Alanında Yenilikler Konferansı 2010: e-Öğrenme

3. Uluslararası Gelecek İçin Öğrenme Alanında Yenilikler Konferansı 2010: e-Öğrenme

Konferans ile ilgili ayrıntılı bilgiye aşağıdaki bağlantıdan ulaşabilirsiniz: http://www.futurelearning.org.tr/katilim_cagrisitr.pdf ...
Kategori: Konferans

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 52 (50 kayıtlı, 2 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

...

Blog Bölümü Blogevi.com'a Taşınıyor

Selam arkadaşlar MMIstanbul'da , tasarımcı ve programcıların blog yazılarını "feedleyerek" MMIstanbul okurlarını MMIstanbul dışın ...

7.500'üncü üyemiz Cem Koç!

Neler Yapılabilir?

500 Hatası Hakkında!

Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)

coldfusion mysql ubuntu
 
sponsor adobe istanbul