9RIA.com天地会 - 论坛

返回列表 发帖

天地培训

9RIA天地会官方培训机构

Adobe官方认证培训中心

请教下文件拖入窗口功能?-----已解决

本帖最后由 sos263665629 于 2010-2-10 11:31 编辑

就是用户把文件拖入窗口, 我的程序能够接受并识别用户拖进来的是什么文件并能获取文件的路径和名字。
知道的告诉我下怎么实现的,谢谢
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
  3.         <mx:Script>
  4.                 <![CDATA[
  5.                         import mx.events.DragEvent;
  6.                         import flash.events.NativeDragEvent;
  7.                         import mx.core.Application;
  8.                         import flash.desktop.NativeDragManager;
  9.                         import flash.desktop.Clipboard;
  10.                         import flash.desktop.ClipboardFormats;
  11.                         private function init():void
  12.                         {
  13.                                                                 //之前把NativeDragEvent写成DragEvent了。导致点不出clipboard属性. 现在纠正过来了.
  14.                                 this.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, dragEnter);   
  15.                                 this.addEventListener(NativeDragEvent.NATIVE_DRAG_COMPLETE, dragComplete);
  16.                                 this.addEventListener(NativeDragEvent.NATIVE_DRAG_START, dragStart);
  17.                                 this.addEventListener(NativeDragEvent.NATIVE_DRAG_OVER, dragOver);
  18.                                 this.addEventListener(NativeDragEvent.NATIVE_DRAG_EXIT, dragExit);
  19.                                 this.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, dragDrop);
  20.                                 this.addEventListener(NativeDragEvent.NATIVE_DRAG_UPDATE, dragUpdate);                        }
  21.                         private function dragEnter(e:DragEvent):void
  22.                         {
  23.                                
  24.                                 NativeDragManager.acceptDragDrop(this);
  25.                                 trace("Enter");
  26.                         }
  27.                         private function dragComplete(e:DragEvent):void
  28.                         {
  29.                                 trace("dragComplete");
  30.                         }
  31.                         private function dragStart(e:DragEvent):void
  32.                         {
  33.                                 trace("start");
  34.                         }
  35.                         private function dragOver(e:DragEvent):void
  36.                         {
  37.                                 trace("Over");
  38.                         }
  39.                         private function dragExit(e:DragEvent):void
  40.                         {
  41.                                 trace("Exit");
  42.                         }
  43.                         private function dragDrop(e:DragEvent):void
  44.                         {
  45.                                 trace("Drop");
  46.                                                                //在这里获取用户拖进来的文件路径和文件名
  47.                                                                 var arr:Array = e.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
  48.                                 trace(arr[0].url+"/"+arr[0].name);
  49.                         }
  50.                                                 private function dragUpdate(e:NativeDragEvent):void
  51.                         {
  52.                                 trace("update");
  53.                         }
  54.                 ]]>
  55.         </mx:Script>
  56. </mx:WindowedApplication>
复制代码

天地人才库
import mx.managers.DragManager;
import mx.core.DragSource;
import mx.events.DragEvent;
import flash.events.MouseEvent;
只知道利用上面的东东可以实现程序内部的拖拽操作,现在想知道让程序响应外部文件拖入窗口!~
我自己顶一下!~!~

TOP

外部文件拖入AIR窗体会触发NativeDragEvent事件。
启动对象调度:

nativeDragStart -- 当拖动操作开始时。
nativeDragUpdate -- 当拖动操作正在进行时。
nativeDragComplete -- 当用户释放拖动的项目(无论是否接受放置)时。
启动对象是在启动拖动操作的 NativeDragManager.doDrag() 调用中传递给 NativeDragManager 对象的交互式对象。

潜在的目标交互式对象调度:

nativeDragEnter -- 当拖动动作移入对象边界内时。
nativeDragOver -- 当拖动动作停留在对象边界内时。
nativeDragExit -- 当拖动动作离开对象边界时。
nativeDragDrop -- 当用户在对象上释放拖动的项目并且该对象使用先前对 NativeDragManager.acceptDragDrop() 的调用接受了放置时。
==========详细请查看API,搜索NativeDragEvent=============

下面代码可以得到文件的URL、文件名等
  1. var arr:Array = evt.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
  2. trace(arr[0].url、arr[0].name);
复制代码

TOP

好兄弟,讲义气!---by eko

踏上天地会荣耀之路!

 

申请舵主

加入掘金队

加入译林军

知识专题整理

 

咨询(QQ):

1442604479(小地)

 

本帖最后由 sos263665629 于 2010-2-10 11:02 编辑

回复 3# kain2000cn


    感谢   evt点不出来clipboard属性

TOP

我注册的事件好像错了。

TOP

不好意思我把事件注册成DragEvent了
应该注册成NativeDragEvent, 我也说怎么点不出来clipboard属性呢!
我重新编辑下问题.

TOP

返回列表