共同之处:
首先初始化:
注册
NativeDragEvent.NATIVE_DRAG_ENTER和NativeDragEvent.NATIVE_DRAG_DROP;
addEventListener( NativeDragEvent.NATIVE_DRAG_ENTER,dragEnterHandler );
addEventListener( NativeDragEvent.NATIVE_DRAG_DROP,dragDropHandler );
在dragEnterHandler方法中:
private function dragEnterHandler( evt:NativeDragEvent ):void {
if( evt.clipboard.hasFormat( ClipboardFormats.FILE_LIST_FORMAT ) )
NativeDragManager.acceptDragDrop( this);
}
在dragDropHandler方法中:
private function dragDropHandler( evt:NativeDragEvent ):void {
var files:Array = evt.clipboard.getData( ClipboardFormats.FILE_LIST_FORMAT ) as Array;
var uiLoader:UILoader = new UIloader();
uiLoader.load(files[0].url);
this.addChild(uiLoader);
}
不同之处:
flash中不能直接在stage上触发 NativeDragEvent事件。所以可以在stage上添加一个sprite。让sprite透明。
flex中不用。application Window 自身就能触发 NativeDragEvent.