`
nbkangta
  • 浏览: 431656 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

Adobe Air拖放文件例子

    博客分类:
  • Flex
阅读更多

作者强调,在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方法来获取数据

 

  1. private function onDragIn(e:NativeDragEvent):void{
  2. //check and see if files are being drug in
  3. if(e.clipboard.hasFormat(ClipboardFormats.FILE_LIST_FORMAT)){
  4. var files:Array = e.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
  5. DragManager.acceptDragDrop(this);
  6. }
  7. }

 

3.需要判断一下拖拽的数据是否符合要求,如果是允许的数据格式,则执行DragManager.acceptDragDrop()方法

 

  1. private function onDragDrop(e:NativeDragEvent):void{
  2. //get the array of files being drug into the app
  3. var arr:Array = e.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
  4. uploadGrid.dataProvider = arr;
  5. }

 

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的模式,接口:

 

  1. package dao {
  2. import mx.collections.ArrayCollection;
  3. public interface PictureObjectDao {
  4. function savePictureObject(label:String, testObject:Object):void;
  5. function getPictureObjectByLabel(label:String):ArrayCollection;
  6. function getAllPictureObjects():ArrayCollection;
  7. }
  8. }

 

保存一个图片到数据库的时候,使用的依然是:clipboard.getData

 

  1. private function onDrop(event:NativeDragEvent):void {
  2. var airData:Object=event.clipboard.formats;//读取剪切板
  3. for each(var type:String in airData) {
  4. if (type != "air:url") {
  5. var airObjects:Array=event.clipboard.getData(type)as Array;//获取剪切板中的数据
  6. var inFile:File=airObjects[0]as File;//获取剪切板中的文件
  7. var fileInStream:FileStream=new FileStream();//文件流
  8. var contentArray:ByteArray=new ByteArray();
  9. fileInStream.open(inFile, FileMode.READ);
  10. fileInStream.readBytes(contentArray);//读取字节保存到contentArray
  11. picture.source=contentArray;
  12. savePictureObject(inFile.name, contentArray);//保存到数据库
  13. }
  14. }
  15. function savePictureObject(label:String, pictureObject:ByteArray):void {
  16. pictureObjectDao.savePictureObject(label, pictureObject);
  17. addedPictureObjects=pictureObjectDao.getAllPictureObjects();
  18. }
  19. }

分享到:
评论

相关推荐

    adobe air runtime version 33.1.1.744 for Mac

    在压缩包文件名称"AdobeAIR-Runtime-Mac-v33.1.1.744"中,我们可以推断出这个压缩文件包含了Adobe AIR运行时的安装程序,专为Mac用户设计,并且是版本33.1.1.744。 安装Adobe AIR运行时后,开发者可以使用Adobe ...

    adobe air runtime version 50.2.4.1 for windows

    压缩包内的文件"AdobeAIR-runtime-Windows-v50.2.4.1"很可能是Adobe AIR运行时的安装程序。用户可以通过运行这个文件来安装或升级现有的Adobe AIR环境,从而确保能够运行基于该版本的AIR应用程序。 总的来说,Adobe...

    Adobe AIR安装文件

    2. **桌面集成**:AIR应用可以拥有桌面级别的功能,如拖放操作、系统托盘图标、本地文件访问和离线工作。 3. **丰富的用户界面**:利用ActionScript和Flash的图形能力,开发者可以创建具有丰富媒体和交互性的应用...

    dreamweaver的adobe air扩展Adobe_AIR.mxp

    压缩包子文件的文件名称列表只包含“Adobe_AIR.mxp”,这意味着压缩包内只有这一个文件,即Adobe AIR的Dreamweaver扩展安装文件。用户需要先解压这个文件,然后在Dreamweaver中通过扩展管理器进行安装。 总的来说,...

    AdobeAIR——air的安装文件

    这是一个Installer文件,安装的是AdobeAIR软件。使用此软件可以使得air文件轻松安装。

    adobe air runtime version 33.1.1.744 for windows

    Adobe AIR runtime 33.1.1.744的文件名"AdobeAIR-runtime-Windows-v33.1.1.744"表明这是专为Windows设计的,文件包含了所有必要的组件,使得用户能够在Windows系统上顺畅地运行AIR应用。 使用Adobe AIR开发的应用...

    Adobe AIR 阅读器

    .AIR文件是Adobe AIR应用程序的打包格式,包含了所有必要的组件和资源,用户可以通过这个阅读器来安装和运行基于Adobe AIR技术构建的应用程序。 描述中提到了"Ext2.2的正式文档",这可能指的是某个基于Adobe AIR...

    adobeair残留清理完美版本

    "adobeair残留清理完美版本"就是为了解决这个问题而设计的工具,它可以智能、快速地定位并清理Adobe AIR在系统底层的残留文件。 这个清理工具的核心组件是`msicuu2.exe`,这是一个Microsoft Installer Clean Up ...

    AdobeAIR入门教程

    8. **桌面集成**:探索如何利用Adobe AIR提供的API实现桌面级特性,如拖放操作、桌面通知、系统菜单集成等。 9. **安全和权限**:理解Adobe AIR的安全模型,包括沙箱限制、数字签名以及获取用户权限的方法。 10. *...

    Adobe AIR 1.5 中文帮助手册

    开发者可以利用Adobe AIR 1.5 SDK创建应用程序,并通过AIR打包工具将其打包成独立的可执行文件,用户只需点击安装即可在桌面上使用。这种便捷的部署方式降低了用户接触和使用新应用的门槛。 8. **应用生命周期管理...

    flash adobe air 采集音视频 软件

    - `mimetype`:在Adobe AIR应用中,这个文件用于标识包含的压缩包是Adobe AIR应用。 - `RagingFirePublisher.swf`:SWF(Shockwave Flash)文件是Flash内容的标准格式,这可能是软件中的主要用户界面或运行时组件。 ...

    Adobe Air Programming Unleashed

    - **文件系统访问**:Adobe AIR提供了对本地文件系统的访问权限,使得应用程序可以读写用户的文件。 - **安全性**:本书详细介绍了Adobe AIR的安全模型,包括沙箱机制和权限管理。 5. **实战案例分析** - **桌面...

    adobe air 入门示例

    这篇博客"adobe air 入门示例"很可能是引导初学者了解如何使用Adobe AIR创建桌面应用的一个教程。 在源码和工具的标签下,我们可以推测这篇博客会包含以下知识点: 1. **Adobe AIR基础**:首先,文章可能会介绍...

    使用AdobeAIR开发android应用

    - **打包应用**:使用Adobe AIR SDK中的工具将应用打包成APK文件,这是Android应用的安装包格式。 - **上传至Google Play**:注册成为Google Play开发者,上传应用并填写必要的信息,包括应用名称、描述、截图以及...

    Android移动开发--基于Adobe AIR 源代码

    使用Adobe AIR,开发者可以创建AIR应用程序描述符文件(.xml),并使用ADT(Adobe AIR Developer Tool)将应用打包成APK,然后在Google Play或其他第三方市场发布。 7. **性能优化** 虽然Adobe AIR提供了跨平台的...

    as3 adobe air ios airplay

    【标题】AS3 Adobe AIR iOS AirPlay 在iOS设备上,Adobe AIR允许开发者创建能够利用Apple的AirPlay技术的应用程序。AirPlay是一项功能,让用户可以通过Wi-Fi将音频、视频甚至是屏幕镜像从一个设备无线传输到其他...

    Adobe AIR 经典案例2008 Adobe AIR Create Modify Reuse

    5. **本地文件系统和数据库访问**:Adobe AIR允许应用程序访问本地文件系统和SQLite数据库,这为桌面应用提供了数据存储能力。书中会讲述如何在AIR应用中读写文件,以及如何使用SQL进行数据管理。 6. **桌面集成**...

    Adobe AIR权威指南

    《Adobe AIR权威指南》是一本深入探讨Adobe AIR技术的专业书籍,适合初学者和有经验的开发者作为学习和参考。Adobe AIR(Adobe Integrated Runtime)是一种跨平台的运行环境,它允许开发人员使用Flash、ActionScript...

    Scratch2(含adobe AIR 和 Scratch2)

    "AdobeAIRInstaller.exe"文件就是用来安装Adobe AIR的执行程序,确保系统具备运行Scratch2所需的环境。 "Scratch-461.exe"则是Scratch2的安装文件,版本号461表明这是该软件的一个特定更新版本,发布日期可能对应于...

Global site tag (gtag.js) - Google Analytics