AIR中的文件系统控件

 写AIR的过程中,可能会用到文件系统的相关控件。比如选择某一目录,浏览文件列表等。

AIR中有三种比较常用的列表类组件 --- List、Tree、DataGrid,它们的效果分别如下图所示:

分别对应:FileSystemList、FileSystemTree、FileSystemDataGrid

1: <?xml version="1.0" encoding="utf-8"?>   2: <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"   3:                         title="....x"   4:                         windowComplete="inited()">   5:        6:     <mx:Script>   7:         <![CDATA[   8:             import mx.events.FileEvent;   9:               10:             private function inited():void  11:             {  12:                 fileCB.directory = File.documentsDirectory;  13:             }  14:               15:             private function changeHandler(evt:FileEvent):void  16:             {  17:                 trace(evt.file.nativePath);  18:             }  19:               20:         ]]>  21:     </mx:Script>  22:       23:     <mx:HBox width="100%">  24:           25:         <mx:FileSystemComboBox id="fileCB" directory="{fileList.directory}" directoryChange="changeHandler(event)" />  26:           27:         <mx:FileSystemList id="fileList" directory="{fileCB.directory}" />  28:           29:     </mx:HBox>  30:       31:     <mx:HBox width="100%" height="100%">  32:           33:         <mx:FileSystemTree id="fileTree" width="300" height="400" directory="{FileSystemTree.COMPUTER}" />  34:           35:         <mx:FileSystemDataGrid id="fileGrid" width="100%" height="100%" directory="{File.desktopDirectory}" />  36:           37:     </mx:HBox>  38:       39:       40:       41: </mx:WindowedApplication>

还有一个对文件操作的常用操作:

1)、浏览文件,打开一个对话框,选择一个或多个文件;

1: private var file:File = new File();   2: private var fileFilter:FileFilter = new FileFilter("Text", "*.txt; *.html; *.xml");   3: private var imgFilter:FileFilter = new FileFilter("图片", "*.jpg; *.png; *.jpeg");   4:     5: private function inited():void   6: {   7:       file.addEventListener(Event.SELECT, onSelectHandler);   8:     file.addEventListener(Event.CANCEL, onCancelHandler);   9:     file.addEventListener(FileListEvent.SELECT_MULTIPLE, onSelectMultipleHandler);  10:       11:       file.browseForOpen("Open File", [fileFilter, imgFilter]);      12:     file.browseForOpenMultiple("Open File", [fileFilter, imgFilter]);      13: }  14:    15: private function onSelectHandler(evt:Event):void  16: {  17:       18: }  19:    20: private function onCancelHandler(evt:Event):void  21: {  22:       23: }  24:    25: private function onSelectMultipleHandler(evt:FileEvent):void  26: {  27:       28: }

2)、保存文件

1: private function inited():void   2: {   3:     file = File.desktopDirectory;   4:     file.browseForSave("另存为");   5:        6:     file.addEventListener(Event.SELECT, onSelectHandler);   7: }   8:     9: private function onSelectHandler(evt:Event):void  10: {  11:     var file:File = evt.target as File;  12:     var stream:FileStream = new FileStream();  13:       14:     stream.open(file, FileMode.WRITE);  15:     stream.writeUTFBytes("Hello AIR");  16:     stream.close();  17: }

3)、其它应用程序的技巧,例如:让应用程序始终“保持在其它窗口的顶部”(alwaysInFront=true)、应用程序在任务栏中,它的右击菜单、顶部的状态栏操作等

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

你不可不看的 Oracle RAC 日常基本维护命令

$ srvctl status instance -d orcl -i orcl2

1224
来自专栏三杯水

使用ELK分析腾讯云CLB日志

最近在使用腾讯云,想对访问日志进行收集与分析,发现CLB(负责均衡)日志只能保存到COS上面,而且是每个CLB没小时压发送个gz压缩包到COS。

2203
来自专栏雪胖纸的玩蛇日常

Vue+koa2开发一款全栈小程序(7.图书录入功能)

2753
来自专栏FreeBuf

新手指南:DVWA-1.9全级别教程之SQL Injection

目前,最新的DVWA已经更新到1.9版本(点击原文查看链接),而网上的教程大多停留在旧版本,且没有针对DVWA high级别的教程,因此萌发了一个撰写新手教程的...

4868
来自专栏程序员互动联盟

【Windows编程】创建多文档界面

前面我们所举的例子中都是单文档界面框架,也就是说这个窗口里面的客户区就是一个文档界面,可以编写程序在里面输入或者绘制文本和图形输出,但是不能有出现多个文档的情况...

2985
来自专栏大大刺猬

python 优化办公(excel)

使用pyinstaller: pyinstaller -F 你的.py文件 -i 你的ico图标(logo)

2695
来自专栏数据和云

【常见错误分析】ORA-01555错误解决一例

ORA-01555错误是一种在Oracle数据库中很常见的错误。尤其在Oracle 8i及之前的版本最多。从9i开始的undo自动管理,至现在的10g、11g中...

2946
来自专栏Golang语言社区

【Go 语言社区】Go实现个留言本

一、分析 要实现这个下面是几个重要的东西。 1.数据库操作(go怎么操作数据库)、 2.输出js,css,图片等 3.html显示 ...

3689
来自专栏散尽浮华

mysqldump数据导出问题和客户端授权后连接失败问题

1,使用mysqldump时报错(1064),这个是因为mysqldump版本太低与当前数据库版本不一致导致的。 mysqldump: Couldn't exe...

2439
来自专栏乐沙弥的世界

日志记录模式(LOGGING 、FORCE LOGGING 、NOLOGGING)

--==================================================

951

扫码关注云+社区

领取腾讯云代金券