ActionScript Sürükle Bırak – Drag and Drop

Daha önceki derslerde klavye yardımı ile flash sahnesindeki nesneleri taşıyorduk. Artık fareyi de kullanarak bu işlemi gerçekleştireceğiz. Sahnedeki nesneye tıklayıp sürükleyince sahne üzerinde hareket edecek. Bunun için startDrag komutunu kullanacağız. Uygulamamıza geçelim;

Flash programını açarak bir sahne açın. Sahne üzerine bir daire çizip F8 tuşuna basarak film klibine çevirin. Daha sonra nesneye seçin ve özellikler alanından <Örnek Adı>’nı daire olarak belirleyin. Bu işlemlerin ardından F9 tuşuna basın ve aşağıdaki kodları yazın.

daire.addEventListener(MouseEvent.MOUSE_DOWN, tasi);
function tasi(e:MouseEvent) 
{   
    daire.startDrag();
}

daire.addEventListener(MouseEvent.MOUSE_UP, birak);
function birak(e:MouseEvent) 
{    
    daire.stopDrag();
}

Artık yapacağınız uygulamalar sizin hayal gücünüze bağlı. Kolay gelsin. Sonraki derslerde bir puzzle yapacağız. Şimdilik iyi çalışmalar.

[kml_flashembed publishmethod=”static” fversion=”8.0.0″ movie=”http://www.mustafaakbal.com.tr/wp-content/uploads/2013/05/surukle.swf” width=”400″ height=”300″ targetclass=”flashmovie”]

Get Adobe Flash player

[/kml_flashembed]

9 yorum

  • yasingizli

    Ali okula geldi.
    – Bu cümlede kaç kelime var? X
    – “c” alfabemizin kaçıncı harfi? X
    – “çarşamba” haftanın üçüncü günü? X

    1 1 1 2 2 2 3 3 3

    soruların hepsinin cevabı 3tür. aşağıda verilen 3 lerden hepsi de istediğimiz X e taşınabilsin.

  • Mustafa hocam, senden bir ricam olacak. Şimdi öğrencilerim için bir uygulama yapmaya çalışıyorum. Sürükle bırak yöntemi ile doğru noktada sabitliyorum bunda sıkıntı yok. Konu almanca ve artikeller olduğu için aynı isimde 4 artikel var ve yerleri farklı. bunlar der1- der2 – der3 ve der4 diyelim. dokunduklarında duracakları yerler de buton1- buton2-buton3-buton4 diyelim. İsteğim der1, butonlardan hangisine değerse değsin değdiği yerde sabitlenmesi. tabii bu but’ların hepsinin koordinatları farklı. Bir türlü yapamadım bunu. Bunun mümkünatı var mıdır. Varsa yardımcı olursanız size öğrencilerim adına minnettar kalırım. Saygılar sunarım.

    Tek yere sabitleme için kullandığım kodlar altta :

    der1_mc.addEventListener(MouseEvent.MOUSE_UP,dur1);
    function dur1(e:MouseEvent) {
    der1_mc.stopDrag();
    if (der1_mc.hitTestObject(buton1_mc)) {
    der1_mc.x=184;
    der1_mc.y=124;

    der1_mc.removeEventListener(MouseEvent.MOUSE_DOWN,art);

    } else {
    der1_mc.x=49,85;
    der1_mc.y=351;
    }
    }

    • mustafaakbal

      Hocam kolay glsün önclikle. Dmek istediğiniz nesneyi çekip bırakınca butona değerse değdiği yerde mi kalacak yoksa sahnenin bir alanına mı sabitlenecek. Tam olarak anlayamadım kusura bakmayın. Ona göre tekrar yardımcı olmayı isterim.

  • ismail

    sayın hocam
    bir nesne olusun bu nesnenin üzerine gelince kopyalansın ve kopya fare basılı iken sürükleyerek bırakılsın,
    bu örneği nasıl yapılabilir. yardımcı olurmusunuz

    • mustafaakbal

      flash ile nesne oluşturma kodları kullanarak yapabilirsiniz. nesnenin tıklanma olayına bu kodları yazarak nesneyi oluşturup sonra da oluşan nesneyi sürükle bırak özelliğini aktif ederek taşıyabilirsiniz.

  • kenan

    Merhaba Mustafa hocam,
    sanırım benim sorunumda yukarıda yer alan Kenan çete’ye ait sorunla aynı.
    diyelim ki elimde sürükle bırak yapacağım 7 tane kelime var bunlardan 5 tanesi doğru ve 5 tane boş cevap kısmı var. 7 kelimeden her hangi birini 5 farklı boş cevap kısmına sürükle bırak yaparsam yapayım doğru olacak. yanlış kelimeyi hangi 5 boş movieclip üzerine bırakırsam bırakayım geri dönecek.
    örnek:
    egede yetişen tarım ürünleri: üzüm, fındık, zeytin, tütün…
    üzümü hangi movieclip üzerine koyarsam koyayım doğru kabul edecek.
    zeytini hangi movieclip üzerine koyarsam koyayım doğru kabul edecek.
    fındığı üzümü hangi movieclip üzerine koyarsam koyayım yanlış kabul edecek.
    ..
    sabırla okuduğunuz ve ilgilendiğiniz için teşekkür ederim

    • mustafaakbal

      http://www.mustafaakbal.com.tr/flash-cs5-actionscript-3-0-hittestobject.html yazısını inceleyin. Fikir olarak şöyle yol gösterebilirim. en sondaki hit test kısmında yapılan kontrolü veya operatörleri ile geliştirebilirsiniz.

      function carpma(e:Event):void{
      if (daire.hitTestObject(kare))
      {
      mesaj.text=”Çarptınız”;
      }

      Kodunun içine daireyi ürünler olarak düşünün
      function carpma(e:Event):void{
      if (zeytin.hitTestObject(kare) or aycicek.hitTestObject(kare) ….. )
      {
      mesaj.text=”tebrikler”;
      }

      Yaparak birden çok nesneyi test edebilirsiniz. Tebrikler kısmında istediğinizi yapabilirsiniz. Umarım anlatabilmilmişimdir.

  • kenan

    fındığı hangi movieclip üzerine koyarsam koyayım yanlış kabul edecek.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir