AIR de Drag and Drop
20 Kasım 2007 – 05:10Drag and Drop (sürükle ve bırak) işlemi flash ta yeni bir şey değil aslında, ama sürüklemek istediğiniz obje flash dosyanızın içinde olması gerekiyor aksi takdirde erişemiyorsunuz. Tabii AIR den bu yana yani masaüstü uygulamaları geliştirdiğimiz için haliyle dosya sisteminde ya da masa üstünde duran bir belgeyi, resmi, bir flv dosyasını programın üzerine sürükleyip bırakarak kullanabiliyoruz.
Kodlara geçmeden önce, sistematiği kısaca anlatmak istiyorum.
Sistemin çalıştığını düşünerek, masaüstünde duran bir dosyayı tutup yapılan programın üzerine getirdiğinizde ilk olarak o dosyanın uzantısının istediğimiz uzantı olup olmadığını kontrol ediyoruz. Eğer uzantı istediğimiz uzantı ise sürüklenen dosyayı kabul ediyoruz.
Daha sonra ise flv dosyasını oynatmaya başlıyoruz. Ayrıca normal olarak kullandığımız masaüstü programlarında dikkatinizi çekmiştir mutlaka, birden fazla dosyayı sürükleyip bırakabiliyorsunuz. Bunu yapmamız mümkün tabii, ama bu örnek için sadece ilk olarak seçileni oynatmaya başlıyor.
-
import flash.desktop.DragManager;
-
import flash.desktop.ClipboardFormats;
-
import flash.events.NativeDragEvent;
-
//Yeni bir obje oluşturuyoruz
-
var file:Object = new Object;
-
//Herhangi bir dosya sürüklendiginde çalışacak kod
-
function startToDrag(event:NativeDragEvent) {
-
//Burada sürüklenen dosyanın bilgisini alıyoruz.Yani sürüklenen dosyanın flv
-
//dosyası olup olmadığını anlıyoruz
-
//Buradaki file objemizi array olarak düşünün
-
file = event.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT);
-
// file[0] ilk olarak sürüklenen dosyanın adını temsil ediyor.
-
//unutmayın bu bilgiyi clipboard dan alıyor.Eğer bir den çok dosyayı açmak
-
//isteseydik yapacağımız işlem for loop yaparak bütün dosyaları almaktı.
-
//Ama bu örnek için ilki yeterli olacaktır.
-
//dosya uzantısnın flv olup olmaddığını kontrol ediyoruz
-
if (file[0].extension=="flv") {
-
//Eğer dosya uzantımız flv ise dosyayı kabul ediyor.
-
DragManager.acceptDragDrop(this);
-
}
-
}
-
function dropDrag(event:NativeDragEvent) {
-
file = event.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT);
-
//Burada ise kabul edilen flv dosyasını oynatıyoruz.
-
flvPlayBack.play(file[0].url);
-
}
-
//olay dinleyicilerimiz
-
this.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, startToDrag);
-
this.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, dropDrag);
Göründüğü gibi çok basit.Ama yinede kaynak dosyaları indirmenizi tavsiye ederim.
Kaynak Dosyalar
Kolay Gelsin
Engin!
