作者强调,在AIR中实现拖拽操作要用到的标签就是DragManager ,实现的原理大致上是如下的步骤:
1.当用户拖拽一个文件到AIR应用,AIR应用通过侦听NativeDragEvent.NATIVE_DRAG_ENTER,捕获到拖拽事件
addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, onDragIn);
通过侦听NativeDragEvent.NATIVE_DRAG_DROP,捕获到拖拽完成事件
addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, onDragDrop);
2.拖拽的数据实际上位于系统的剪切板内,所以AIR需要使用clipboard.getData方法来获取数据
private function onDragIn(e:NativeDragEvent):void{
//check and see if files are being drug in
if(e.clipboard.hasFormat(ClipboardFormats.FILE_LIST_FORMAT)){
var files
:Array = e.clipboard.getData
(ClipboardFormats.FILE_LIST_FORMAT
) as Array;
DragManager.acceptDragDrop(this);
}
}
3.需要判断一下拖拽的数据是否符合要求,如果是允许的数据格式,则执行DragManager.acceptDragDrop()方法
private function onDragDrop(e:NativeDragEvent):void{
//get the array of files being drug into the app
var arr
:Array = e.clipboard.getData
(ClipboardFormats.FILE_LIST_FORMAT
) as Array;
uploadGrid.dataProvider = arr;
}
4.由于从剪切板中获取的数据是Array格式,所以你可以直接赋给DataGrid作为数据源,在DataGrid中显示出来
第二篇 - 从桌面拖拽文件到AIR应用程序
来自:http://www.mindtheflex.com/?p=81
这篇文章的初衷与上一篇类似,不过作者设计的模式是从用户桌面上拖拽一个图片到AIR应用程序,然后AIR应用程序将它以BLOB的格式存放到数据库中(BLOB是数据库中用来存储二进制文件的字段类型)。
开始你需要创建一个主的MXML文件和一个用于存放图片的数据库(SQLite),你也手工创建,也可以通过下面的SQL语句:
CREATE TABLE IF NOT EXISTS picture_objects(id integer PRIMARY KEY autoincrement,label text, picturedata blob);
在存取数据方面,作者使用了DAO的模式,接口:
package dao {
import mx.collections.ArrayCollection;
public interface PictureObjectDao {
function savePictureObject
(label
:String, testObject
:Object):void;
function getPictureObjectByLabel
(label
:String):ArrayCollection;
function getAllPictureObjects():ArrayCollection;
}
}
保存一个图片到数据库的时候,使用的依然是:clipboard.getData
private function onDrop(event:NativeDragEvent):void {
var airData
:Object=event.clipboard.formats;
//读取剪切板
for each(var type:String in airData
) {
if (type != "air:url") {
var airObjects
:Array=event.clipboard.getData
(type)as Array;
//获取剪切板中的数据
var inFile:File=airObjects[0]as File;//获取剪切板中的文件
var fileInStream:FileStream=new FileStream();//文件流
fileInStream.open(inFile, FileMode.READ);
fileInStream.readBytes(contentArray);//读取字节保存到contentArray
picture.source=contentArray;
savePictureObject(inFile.name, contentArray);//保存到数据库
}
}
pictureObjectDao.savePictureObject(label, pictureObject);
addedPictureObjects=pictureObjectDao.getAllPictureObjects();
}
}
分享到:
相关推荐
在压缩包文件名称"AdobeAIR-Runtime-Mac-v33.1.1.744"中,我们可以推断出这个压缩文件包含了Adobe AIR运行时的安装程序,专为Mac用户设计,并且是版本33.1.1.744。 安装Adobe AIR运行时后,开发者可以使用Adobe ...
压缩包内的文件"AdobeAIR-runtime-Windows-v50.2.4.1"很可能是Adobe AIR运行时的安装程序。用户可以通过运行这个文件来安装或升级现有的Adobe AIR环境,从而确保能够运行基于该版本的AIR应用程序。 总的来说,Adobe...
2. **桌面集成**:AIR应用可以拥有桌面级别的功能,如拖放操作、系统托盘图标、本地文件访问和离线工作。 3. **丰富的用户界面**:利用ActionScript和Flash的图形能力,开发者可以创建具有丰富媒体和交互性的应用...
压缩包子文件的文件名称列表只包含“Adobe_AIR.mxp”,这意味着压缩包内只有这一个文件,即Adobe AIR的Dreamweaver扩展安装文件。用户需要先解压这个文件,然后在Dreamweaver中通过扩展管理器进行安装。 总的来说,...
这是一个Installer文件,安装的是AdobeAIR软件。使用此软件可以使得air文件轻松安装。
Adobe AIR runtime 33.1.1.744的文件名"AdobeAIR-runtime-Windows-v33.1.1.744"表明这是专为Windows设计的,文件包含了所有必要的组件,使得用户能够在Windows系统上顺畅地运行AIR应用。 使用Adobe AIR开发的应用...
.AIR文件是Adobe AIR应用程序的打包格式,包含了所有必要的组件和资源,用户可以通过这个阅读器来安装和运行基于Adobe AIR技术构建的应用程序。 描述中提到了"Ext2.2的正式文档",这可能指的是某个基于Adobe AIR...
"adobeair残留清理完美版本"就是为了解决这个问题而设计的工具,它可以智能、快速地定位并清理Adobe AIR在系统底层的残留文件。 这个清理工具的核心组件是`msicuu2.exe`,这是一个Microsoft Installer Clean Up ...
8. **桌面集成**:探索如何利用Adobe AIR提供的API实现桌面级特性,如拖放操作、桌面通知、系统菜单集成等。 9. **安全和权限**:理解Adobe AIR的安全模型,包括沙箱限制、数字签名以及获取用户权限的方法。 10. *...
开发者可以利用Adobe AIR 1.5 SDK创建应用程序,并通过AIR打包工具将其打包成独立的可执行文件,用户只需点击安装即可在桌面上使用。这种便捷的部署方式降低了用户接触和使用新应用的门槛。 8. **应用生命周期管理...
- `mimetype`:在Adobe AIR应用中,这个文件用于标识包含的压缩包是Adobe AIR应用。 - `RagingFirePublisher.swf`:SWF(Shockwave Flash)文件是Flash内容的标准格式,这可能是软件中的主要用户界面或运行时组件。 ...
- **文件系统访问**:Adobe AIR提供了对本地文件系统的访问权限,使得应用程序可以读写用户的文件。 - **安全性**:本书详细介绍了Adobe AIR的安全模型,包括沙箱机制和权限管理。 5. **实战案例分析** - **桌面...
这篇博客"adobe air 入门示例"很可能是引导初学者了解如何使用Adobe AIR创建桌面应用的一个教程。 在源码和工具的标签下,我们可以推测这篇博客会包含以下知识点: 1. **Adobe AIR基础**:首先,文章可能会介绍...
- **打包应用**:使用Adobe AIR SDK中的工具将应用打包成APK文件,这是Android应用的安装包格式。 - **上传至Google Play**:注册成为Google Play开发者,上传应用并填写必要的信息,包括应用名称、描述、截图以及...
使用Adobe AIR,开发者可以创建AIR应用程序描述符文件(.xml),并使用ADT(Adobe AIR Developer Tool)将应用打包成APK,然后在Google Play或其他第三方市场发布。 7. **性能优化** 虽然Adobe AIR提供了跨平台的...
【标题】AS3 Adobe AIR iOS AirPlay 在iOS设备上,Adobe AIR允许开发者创建能够利用Apple的AirPlay技术的应用程序。AirPlay是一项功能,让用户可以通过Wi-Fi将音频、视频甚至是屏幕镜像从一个设备无线传输到其他...
5. **本地文件系统和数据库访问**:Adobe AIR允许应用程序访问本地文件系统和SQLite数据库,这为桌面应用提供了数据存储能力。书中会讲述如何在AIR应用中读写文件,以及如何使用SQL进行数据管理。 6. **桌面集成**...
《Adobe AIR权威指南》是一本深入探讨Adobe AIR技术的专业书籍,适合初学者和有经验的开发者作为学习和参考。Adobe AIR(Adobe Integrated Runtime)是一种跨平台的运行环境,它允许开发人员使用Flash、ActionScript...
"AdobeAIRInstaller.exe"文件就是用来安装Adobe AIR的执行程序,确保系统具备运行Scratch2所需的环境。 "Scratch-461.exe"则是Scratch2的安装文件,版本号461表明这是该软件的一个特定更新版本,发布日期可能对应于...