Dosya vaadi, kullanıcının AIR uygulamasının dışında henüz var olmayan bir dosyayı sürüklemesini sağlayan bir sürükle ve bırak panosu biçimidir. Örneğin, uygulamanız dosya vaadini kullanarak kullanıcının bir proxy simgesini masaüstündeki bir klasöre sürüklemesine izin verebilir. Proxy simgesi, URL'de olduğu bilinen bir dosyayı veya bazı verileri temsil eder. Kullanıcı simgeyi bıraktıktan sonra çalışma zamanı, verileri indirir ve dosyayı, bırakma konumuna yazar.
URL'de erişilebilir olan dosyaları sürükleyip bırakmak için, bir AIR uygulamasındaki URLFilePromise sınıfını kullanabilirsiniz. URLFilePromise uygulaması, AIR 2 SDK’nin bir parçası olarak aircore kütüphanesinde bulunur. SDK frameworks/libs/air dizininde bulunan aircore.swc veya aircore.swf dosyasını kullanın.
Dönüşümlü olarak, kendi dosya izni mantığınızı IFilePromise arabirimini kullanarak (çalışma zamanı flash.desktop paketinde tanımlanır) uygulayabilirsiniz.
Dosya vaadi, kavramsal olarak panoda veri işleyici işlevini kullanarak gecikmeli görüntü oluşturma işlemine benzer. Dosyaları sürüklerken veya bırakırken gecikmeli görüntü oluşturma yerine dosya vaadini kullanın. Gecikmeli görüntü oluşturma tekniği, veri oluşturulurken veya indirilirken sürükleme hareketinde istenmeyen duraklamalara sebep olabilir. Gecikmeli görüntü oluşturmayı kopyala ve yapıştır işlemleri (dosya vaatlerinin desteklenmediği) için kullanın.
Dosya vaadi kullanımındaki sınırlamalar
Sürükle ve bırak panosuna yerleştirebileceğiniz diğer veri biçimleriyle karşılaştırıldığında dosya vaatleri aşağıdaki sınırlamalara sahiptir:
-
Dosya vaatleri yalnızca AIR uygulamasından dışarı sürüklenebilir; AIR uygulamalarının içine bırakılamaz.
-
Dosya vaatleri hiçbir işletim sistemi tarafından desteklenmez. Dosya vaatlerinin ana bilgisayar sisteminde desteklenip desteklenmediğini test etmek için
Clipboard.supportsFilePromise
özelliğini kullanın. Dosya vaadini desteklemeyen sistemlerde, dosya verilerini indirmek veya oluşturmak için alternatif bir mekanizma sağlamalısınız.
-
Dosya vaatleri, kopyala ve yapıştır panosuyla (
Clipboard.generalClipboard
birlikte kullanılamaz.