我们知道,DragManager是Flex API提供的一个类,用于处理应用中所有内部的拖放动作,不过,它对于窗口外部的拖放是不起作用的。所有Flex组件都对拖放操作有某种程度的支持,开发人员会处理具体的用户动作(如按下鼠标,拖入等),并用DragManager来实现。那么如果要允许OS 与AIR app之间的拖放的话,则需要AIR API提供的NativeDragMananger类。但是,很多人都会问,为什么不能drag一个虚拟文件从我的AIR app到Native app里呢?
即将问世的AIR2.0 new feature:FilePromise就是来解决这个问题的.
那么FilePromise的概念和定义是什么呢?
Drag and Drop --- 不管是在同一个程序内部还是一个多个程序之间,要用一个鼠标移动来执行copy,move,link 一个源目标到一个目的地。典型地,用鼠标来选择拖拽的目标,并且当松开鼠标按键的时候去决定拖拽的目标放在哪里。鼠标图标是用来更新一个拖拽目标在拖拽过程中的状态,并用图片的形式把状态传达给用户。
Clipboard --- 是一个container,它用来transfer同一个程序或者多个程序之间通过剪贴板操作(cut and paste)或者 drag and drop操作的交互目标。剪切板可以储存多种格式的数据,标准数据格式是来支持普通的数据类型操作,非标准数据格式则是用来自定义的操作的。当pasting或者dragging剪贴板内容到一个 native app时,AIR使用的标准格式就被转换成 platform-specific 格式。
File Promise --- 是一个剪贴板数据格式,它可以支持transfer一个没有实际存在在mounted file system的虚拟文件到本地,最常用的情况是到本地的文件系统。
这个feature为开发人员提供了drag virtual files 的能力。也就是可以拖虚拟文件从AIR app到native app,特别支持操作系统默认的 图形化文件管理系统 ,比如 Mac的 Finder和Windows 的Explorer。
但是,Air2.0暂时不支持在AIR apps之间drag file promises或者从一个native app里 拖 file promise到一个AIR app,虽然这是specify clipboard format的一个目标,甚至扩展到支持在AIR apps之间 拖放file promises,这个应该在不久的将来会支持的。
--米酒
AIR 2.0 new feature : FilePromise 介绍 之一
最新推荐文章于 2022-07-16 16:50:50 发布