Flash ta sürükle bırak'a dair bir soru

Kodla Büyü

neyzen26

Aktif Üye
Mesajlar
228
Sayın arkadaşlar, Flashta bir sürükle bırak ile basit bir dört işlem uygulaması gerçekleştirmek istiyorum yalnız bir yerde takıldım. Yaptığım çalışmada 4 işleme dair movieclip'e çevrilmiş 4 simge var. Aşağıdaki resimde görüldüğü gibi. Kullanıcı bu simgeleri kullanarak girilen sayılarla istediği işlemi yapacak. Yalnız ben her simge için ayrı ayrı sürükleme ve bırakma fonksiyonu yerine tek bir sürükle ve bir de bırak için bir fonksiyon yazsam diyorum ve bu fonksiyonlar değişen simgeler göre çalıştırabilir miyim? Yoksa tüm movieclipler için ayrı ayrı sürükle bırak fonksiyonu mu yazmam gerekiyor. Bu işin bir oluru var mı? Çalışma dosyası ektedir. Flash CS4 kullandım.
 

Ekli dosyalar

  • Ekran Alıntısı.JPG
    Ekran Alıntısı.JPG
    32.4 KB · Görüntüleme: 610
  • surukle_dort_islem.rar
    67 KB · Görüntüleme: 27
hocam hepsi için ayrı ayrı function oluştur, functionlar çağrılmadan çalışmadığı için kasmaz, problem olmaz
 
Benimki tembellikten mi yoksa başka bir sebepten mi bilemiyorum öyle bi anda aklıma geldi uğraştım yapamadım sizlere sorayım dedim. İlgilendiğiniz için teşekkür ederim.
 
Tek fonksiyonla halledebilirsiniz.
Sembollerinize sıra ile topla, cikar, carp, bol isimlerini veriniz. Kesikli çizgiyle oluşturulan kutuya hedef ismini veriniz. 1. sayının girildiği metin kutusuna sayi1, ikinciye sayi2, sonucun yazdırıldığı metin kutusuna sonuc_txt adlarını veriniz. Tek fonksiyonla işi halletmek için fonksiyonun içerisinde e.target ifadesini kullanabilirsiniz, aşağıdaki örnekte, sembol eğer kutuya denk gelmezse, eski yerine götürülüyor. Kutuya bırakılan düğmenin adına göre de işlemi gerçekleştirip, sonuc_txt metin kutusuna yazdırıyoruz. Bu haliyle sadece bir kere işlem yaptırabilirsiniz. Tekrar yaptırabilmek için bir düğme koyup, her şeyi resetleyerek, yeni işleme başlamalısınız.

Kod:
topla.addEventListener(MouseEvent.MOUSE_DOWN, surukle);
cikar.addEventListener(MouseEvent.MOUSE_DOWN, surukle);
carp.addEventListener(MouseEvent.MOUSE_DOWN, surukle);
bol.addEventListener(MouseEvent.MOUSE_DOWN, surukle);
var eskix:Number = 0;
var eskiy:Number = 0;
function surukle(e:MouseEvent) {
 eskix = e.target.x;
 eskiy = e.target.y;
 e.target.startDrag();
}

topla.addEventListener(MouseEvent.MOUSE_UP, birak);
cikar.addEventListener(MouseEvent.MOUSE_UP, birak);
carp.addEventListener(MouseEvent.MOUSE_UP, birak);
bol.addEventListener(MouseEvent.MOUSE_UP, birak);
function birak(e:MouseEvent) {
 e.target.stopDrag();
 if (e.target.hitTestObject(hedef)) {
   var islem:String = e.target.name;
   var s1:Number = Number(sayi1.text);
   var s2:Number = Number(sayi2.text);
   var sonuc:Number = 0;
   if (islem == "topla") {
      sonuc=s1 + s2;
   }else if (islem == "cikar") {
      sonuc = s1 - s2;
   } else if (islem == "carp") {
      sonuc = s1 * s2;
   }else{
      sonuc = s1/s2;
   }
   sonuc_txt.text = String (sonuc);
   e.target.removeEventListener(MouseEvent.MOUSE_DOWN, surukle);
   e.target.removeEventListener(MouseEvent.MOUSE_UP, birak);
 }else{
   e.target.x = eskix;
   e.target.y = eskiy;
 }
}
 
Hocam elinize sağlık bir şey daha öğrenmiş oldum sayenizde. Biraz acemiyim Flash ve actionscript konusunda. e.target meselesini çözer gibi olmuştum ama işin içinden çıkamamıştım teşekkür ederim.
 
Geri
Üst