Przeciąganie danych na zewnątrz elementu HTML
Adobe AIR 1.0 i wersje późniejsze
Domyślne zachowanie umożliwia kopiowanie przez przeciąganie większość treści strony HTML. Programista może sterować treścią, która może być przeciągana za pomocą właściwości CSS -webkit-user-select i -webkit-user-drag.
Domyślne zachowanie przeciągania na zewnątrz należy przesłonić w module obsługi dla zdarzenia dragstart. Aby wstawić własne dane do gestu przeciągania, należy wywołać metodę setData() właściwości dataTransfer obiektu zdarzenia.
Aby wskazać, które z efektów przeciągania obsługiwane są przez obiekt źródłowy, jeśli domyślne zachowanie nie jest przekazywane, należy ustawić właściwość dataTransfer.effectAllowed obiektu zdarzenia wywołanego dla zdarzenia dragstart. Można wybrać dowolną kombinację efektów. Na przykład, jeśli źródłowy element obsługuje efekty kopiowanie i łączenie, właściwość należy ustawić na wartość "copyLink".
Ustawianie przeciąganych danych
Dane dla gestu przeciągania należy dodać w module obsługi dla zdarzenia dragstart za pomocą właściwości dataTransfer. Aby wstawić dane do schowka, należy użyć metody dataTransfer.setData(), przekazując typ MIME i dane do przeniesienia.
Na przykład, jeśli w aplikacji programisty znajduje się obraz o identyfikatorze imageOfGeorge, można użyć następującego modułu obsługi zdarzenia dragstart. Ten przykład dodaje reprezentacje obrazu George'a w kilku formatach danych, co zwiększa prawdopodobieństwo, że inne aplikacje będą mogły użyć przeciąganych danych.
function dragStartHandler(event){
event.dataTransfer.effectAllowed = "copy";
var dragImage = document.getElementById("imageOfGeorge");
var dragFile = new air.File(dragImage.src);
event.dataTransfer.setData("text/plain","A picture of George");
event.dataTransfer.setData("image/x-vnd.adobe.air.bitmap", dragImage);
event.dataTransfer.setData("application/x-vnd.adobe.air.file-list",
new Array(dragFile));
}
Uwaga: Wywołanie metody setData() obiektu dataTransfer powoduje, że żadne dane nie zostaną dodane przez domyślne zachowanie przeciągania i upuszczania.