dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>flex>文章内容
AIR下让组件(UIComponent)支持外部文件拖入
来源: 作者:
 最近开始研究AIR平台了,一边做多功能flv播放器一边实践API,收获颇多。
这里是其中一个功能分支,为组件添加文件拖入特性,过程大致如此:
  • 为UIComponent添加NativeDragEvent监听,主要是两个事件 drag_enter和drop[*]当拖动一个文件进入(应该是drag_over吧)UIComponent时首先响应drag_enter事件,这时需要通知该UIComponent可以接受drop(run的时候会看到图标有变化的),不然不会有drop事件发出[*]鼠标释放,drop事件发出
这里还要提一下TransferableData,这个类是用来封装拖动对象的。

Java代码 复制代码
  1. package models  
  2. {  
  3.     import mx.controls.*;  
  4.     import mx.core.UIComponent;  
  5.     import flash.events.NativeDragEvent;  
  6.     import flash.filesystem.File;  
  7.     import flash.desktop.*;  
  8.       
  9.     public class CFileDragInSupport  
  10.     {  
  11.         private var uiComp:UIComponent;  
  12.           
  13.         public function CFileDragInSupport(comp:UIComponent)  
  14.         {  
  15.             uiComp = comp;  
  16.             init();  
  17.         }  
  18.           
  19.         private function init():void  
  20.         {  
  21.             uiComp.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, dragInHandler);  
  22.             uiComp.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, onDropHandler);  
  23.         }  
  24.           
  25.         private function dragInHandler(eve:NativeDragEvent):void  
  26.         {  
  27.             if(eve.transferable.hasFormat(TransferableFormats.FILE_LIST_FORMAT))  
  28.             {  
  29.                 DragManager.acceptDragDrop(uiComp);  
  30.             }  
  31.         }  
  32.           
  33.         private function onDropHandler(eve:NativeDragEvent):void  
  34.         {  
  35.             var obj:TransferableData = eve.transferable;  
  36.             if(obj.hasFormat(TransferableFormats.FILE_LIST_FORMAT))  
  37.             {  
  38.                 var files:Array = obj.dataForFormat(TransferableFormats.FILE_LIST_FORMAT) as Array;  
  39.                 var file:File = files[0];  
  40.                 doDragIn(file);  
  41.             }  
  42.         }  
  43.           
  44.         protected function doDragIn(file:File):void  
  45.         {  
  46.             // override by child  
  47.         }  
  48.           
  49.           
  50.     }  
  51. }  

上一篇:flex 绘制图形例子   下一篇:URLLoader加载XML
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·Flex 打印DataGrid内容
·Flex中的闪烁效果
·flex: 使用setInterval 制作定时
·FLEX优秀开源项目介绍
·AS3中的正则表达式
·flex确认提示(confirm window)
·Flex RemoteObject类参考
·flex:RemoteObject 和 DataGrid
·AS3的面向对象特点概述
·利用AS3的图形界面开发及资源管
·AS3.0 访问属性
·AS3.0强大的事件机制
  相关文章
·flex 绘制图形例子
·URLLoader加载XML
·flex UIComponent直接创建Button
·AS3 for each in
·flex RSS 2.0 规范
·ActionScript 3 中的可变长数组
·Flex中的拖放(Drag-Drop)事件入
·对Adobe Flex的十大误解
·flex存储和验证数据
·Flex HTTPService如何给后台传递
·flex 如何使用HTTPService传值
·flex httpservice xml
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763