Drag and Drop on AIR.HTML Using NativeDragManager
DOM object in HTML ( HTML.domWindow ) stop the Drag events propagating so that dragging over HTML ui will not succeed, which means you cannot see an accept-drop-icon near mouse cursor. To solve this, you have to register a handler to prevent DOM doing something behind but accept drop action, as following sample code:
myHtml.domWindow.document.addEventListener( "dragover:", onDomDragOver );
function onDomDragOver( e:* ):void
{
e.preventDefault();
NativeDragManager.acceptDragDrop( this );
}
function onDomDragOver( e:* ):void
{
e.preventDefault();
NativeDragManager.acceptDragDrop( this );
}
試圖用NativeDragManager拖拉外部物件到Air時,如果遇到HTML元件,會出現無法acceptDragDrop的情況,此時,必須針對HTML#htmlLoader底下的DOM 物件監聽 dragover/dragenter 等javascript事件,阻止DOM自己的事件處理,並在此時,命令HTML接受dragDrop,請見上方原始碼。
PS: Javascript drag event types:
dragover
dragenter
drop
ex: getElementById( “myBox” ).addEventListener( “dragover” , onOverBox );
Tags: AIR, javascript
