| 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

ActionScript 3.0: Sürükle Bırak

Kasım 20th, 2009 Bulunduğu kategori AS3 Eğitim İçerikleri

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

muttaliptulgar

Bir değerlendirme to “ActionScript 3.0: Sürükle Bırak”

  1. gilan Says:

    çok teşekkürler,
    tam da ihtiyaç duyduğum zamanda bu öğreti geldi. iyi olacak hastanın doktor ayağına gelirmiş :)

    devamını bekliyoruz.


Değerlendirmeniz nedir?