1、文档内部元件的拖放:
private function init():void
{
this.readConfigFile();
this.addEventListener(DragEvent.DRAG_ENTER, enterHandler);
this.addEventListener(DragEvent.DRAG_DROP, dropHandler);
}
private function enterHandler(event:DragEvent):void
{
var dragSource:DragSource = event.dragSource;
if(dragSource.hasFormat('createComponent'))
{
DragManager.acceptDragDrop(this);
}
}
private function dropHandler(event:DragEvent):void
{
var dragSource:DragSource = event.dragSource;
var compName:String = dragSource.dataForFormat('createComponent') as String;
}
2、从桌面拖拽文件到air应用程序,(这个其实和通过打开浏览窗口导入文件类似)
private function init():void
{
this.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, onDragIn);
this.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP,onDrop);
}
private function onDragIn(event:NativeDragEvent):void
{
if(event.clipboard.hasFormat(ClipboardFormats.FILE_LIST_FORMAT))
{
var files:Array = event.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
DragManager.acceptDragDrop(this);
}
else
{
trace('-----')
}
}
private function onDrop(event:NativeDragEvent):void
{
var files:Array = event.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
var num:int = files.length;
var fStream:FileStream;
var sourceFile:File;
for(var i:int = 0; i < num; i++)
{
sourceFile = files[i] as File;
if(sourceFile.extension == 'png' || sourceFile.extension == 'jpg')
{
var destination:File = File.documentsDirectory;
destination = destination.resolvePath("AIR Test/test2.bmp");
try
{
sourceFile.copyTo(destination, true);
}
catch (error:Error)
{
trace("Error:", error.message);
}
}
}
}
3、从air程序中拖拽文件到桌面上
待续。。。