`
noahgenius
  • 浏览: 137986 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

AIR下让组件(UIComponent)支持外部文件拖入

阅读更多
最近开始研究AIR平台了,一边做多功能flv播放器一边实践API,收获颇多。
这里是其中一个功能分支,为组件添加文件拖入特性,过程大致如此:
  • 为UIComponent添加NativeDragEvent监听,主要是两个事件drag_enter和drop[*]当拖动一个文件进入(应该是drag_over吧)UIComponent时首先响应drag_enter事件,这时需要通知该UIComponent可以接受drop(run的时候会看到图标有变化的),不然不会有drop事件发出[*]鼠标释放,drop事件发出
这里还要提一下TransferableData,这个类是用来封装拖动对象的。

package models
{
	import mx.controls.*;
	import mx.core.UIComponent;
	import flash.events.NativeDragEvent;
	import flash.filesystem.File;
	import flash.desktop.*;
	
	public class CFileDragInSupport
	{
		private var uiComp:UIComponent;
		
		public function CFileDragInSupport(comp:UIComponent)
		{
			uiComp = comp;
			init();
		}
		
		private function init():void
		{
			uiComp.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, dragInHandler);
			uiComp.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, onDropHandler);
		}
		
		private function dragInHandler(eve:NativeDragEvent):void
		{
			if(eve.transferable.hasFormat(TransferableFormats.FILE_LIST_FORMAT))
			{
				DragManager.acceptDragDrop(uiComp);
			}
		}
		
		private function onDropHandler(eve:NativeDragEvent):void
		{
			var obj:TransferableData = eve.transferable;
			if(obj.hasFormat(TransferableFormats.FILE_LIST_FORMAT))
			{
				var files:Array = obj.dataForFormat(TransferableFormats.FILE_LIST_FORMAT) as Array;
				var file:File = files[0];
				doDragIn(file);
			}
		}
		
		protected function doDragIn(file:File):void
		{
			// override by child
		}
		
		
	}
}
分享到:
评论

相关推荐

    UIComponent.unitypackage

    UIComponent.unitypackage

    MatlabGUI使用java组件无所不能-uicomponent.m

    MatlabGUI使用java组件无所不能-uicomponent.m 是不是曾经想做出漂亮的GUI 界面? 是不是曾经想在 Matlab GUI里面显示网页? 看看这个界面: matlab_java.png 所以,...

    UIComponent

    UIComponent

    UICOMPONENT - 将 uicontrol 扩展到所有 Java 类:增强替换 uicontrol 和 javacomponent,接受所有 Java (Swing/AWT) 样式组件-matlab开发

    UICOMPONENT 以几种等效的不区分大小写的格式支持整个 Swing/AWT 和任何用户定义的类。 例如,'Spinner'、'spiNNer'、'JSpinner' 和 'javax.swing.jspinner' 都是等价的并且可以识别。 现在可用的值得注意的新样式...

    UIComponent:自定义组件(空视图、标题、表单输入项、设置项、菜单项、按钮、文字)

    自定义组件(空视图、标题、表单输入项、设置项、菜单项、按钮、文字) 继承于ConstraintLayout EmptyView 空数据视图-(图标加文字描述) 属性表格 name format description empty_title string 空视图提示文字...

    ActionScript高级组件

    在用 ActionScript 创建自定义组件时,必须重载 UIComponent 类的一些方法.实现基本的 组件结构,构造器,以及 createChildren(),commitProperties(), measure(), layoutChrome() 和 updateDisplayList()方法.

    Flash 窗口组件

    Flash 窗口组件,如同DataGrid,List,采用as3编写,此组件可以最大化,最小化,模式对话框,自适应内容调整,固定大小调整,隐藏标题,隐藏边框,调整窗口大小等操作,希望给搞技术朋友带来实实在在的价值.

    itemStorage_as_class.rar_Flex xml_UIComponent_flex_flex 3_flex s

    This is a Flex UIComponent that can be used 谋n a FLEX 3 mxml application as component written in action script 3.0, provides you to create items that cab be filled from an XML or Query ResultSet or ...

    over_react:一个使用Dart构建静态类型的React UI组件的库

    UiComponent2 /组件样板迁移 最近,此库中进行了许多出色的改进,如果您拥有OverReact 3.1.0发行版之前构建的现有组件,则所有这些都需要您采取一些措施。 我们已竭尽所能,使迁移尽可能轻松自如-绝大多数更改由...

    BlurryLoading-UiComponent

    BlurryLoading-UiComponent

    flex开发自定义控件

    flex开发自定义控件

    SrFileObjectTypeIcons:ILIAS文件对象的文件类型图标

    ILIAS文件对象的文件类型图标 这是Studer + raimann AG,CH-Burgdorf( )的一个开源项目 此项目仅在GPL-3.0许可下获得许可 要求 ILIAS 5.4.0-6.999 PHP> = 7.0 安装 从您的ILIAS根目录开始 mkdir -p Customizing/...

    facelets模板

    与 Tiles 相比,Facelets 的优势在于它预先集成了 JSF UIComponent,并且不需要 Facelets 配置文件,而 Tiles 需要 Tiles 配置文件。 在 Facelets 中可以添加 JSF 验证器和转换器。Facelets 全面支持表达式语言 (EL...

    70款经典Dreamweaver插件

    BustFrames 让其他网页无法将你的主页加载入框架页中 Calendar 为指定月份建立日历 ClosePopupWindow 制作关闭弹出的窗口 CloseWindowOb 建立关闭当前窗口的链接 mm_flabutton_styles 为DW4增加几款新的Flash按钮...

    Dreamweaver 插件集

    让其他网页无法将你的主页加载入框架页中 Calendar 为指定月份建立日历 ClosePopupWindow 制作关闭弹出的窗口 CloseWindowOb 建立关闭当前窗口的链接 mm_flabutton_styles 为DW4增加几款新的Flash按钮样式 mx142100_...

    jboss as 7 support jsf2.2.1 modules

    虽然只是小版本的升级,但对于希望在JSF应用中使用HTML5技术的开发人员而言,JSF 2.2带来的更新很重要,尤其是pass through能力,它允许在JSF组件不知情的情况下传递HTML属性。 HTML5中增加了很多新特性,其中有些...

    SwiftUI-Server-Driver-UI:使用Swifts声明式SwiftUI UI工具包的服务器驱动的UI

    对于服务器上定义的每个组件,我们在应用程序(UIComponent)中都有一个相应的UI实现。 考虑像Hotstar这样的娱乐应用程序,其合同定义如下。 左边是服务器中的组件( ServerComponent ),右边是相应的UI组件。在职...

    Dreamweaver 扩展

    BustFrames 让其他网页无法将你的主页加载入框架页中 Calendar 为指定月份建立日历 ClosePopupWindow 制作关闭弹出的窗口 CloseWindowOb 建立关闭当前窗口的链接 mm_flabutton_styles 为DW4增加几款新的Flash按钮...

Global site tag (gtag.js) - Google Analytics