- 浏览: 54443 次
- 性别:
- 来自: 天津
最近访客 更多访客>>
最新评论
-
shuiyunbing:
单元格样式怎么处理?
将flex页面数据导出到excel -
gaoyide:
啥破玩意!!
FLEX alive pdf 打印pdf -
zhong_pro:
关于博主的问题点,做如下修改就可以达到不需要属性isSelec ...
Flex 4通过重写DataGridColumn和CheckBox类给DataGrid添加选择列-CheckBoxColumn -
zhenxingzzx:
看不到附件的 !!
Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法 -
pangxin12345:
dingdingdingdingding
Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法
AIR的文件操作不难,看完教程应该可以满足你对文件的所有基本操作。这篇教程主要以实际操作中遇到的情况来讲解
我们想想文件操作都会有什么内容,无非是创建,修改,删除,移动,拷贝。在这个过程中我们会涉及到一些周边的操作,比如文件夹,文件选择器,文件列表,文件信息获取等。 我就围绕创建,修改,删除,移动,拷贝来展开我们的教程。因为内容比较多,基于迷你教程每篇都短小,易读的原则。我分为两篇,今天先讲第一篇,基本的操作,下一篇我再加入上面所说周边的操作相对深一步的讲解。
Air的文件操做主要涉及两个类,FIle和FileStream。一般来说我们不会直接以文本形式保存文件,那样的内容不易于修改,所以这里我以xml 文件为例。
Note: 下面所有的function可以直接复制到你的代码中运行
1.创建新文件。
public function createFileDemo():void{
var file:File = File.desktopDirectory.resolvePath(“test.xml”) //尝试从系统桌面获取test.xml文件。
var fileStream:FileStream = new FileStream(); // 创建FileStream 对象,用于读写文件
fileStream.open(file,FileMode.WRITE); //以WRITE方式打开file, 如果file中对应的文件不存在,创建新文件
//准备文件的内容
var content:XML =
我们的第一个文件创建完毕
fileStream.writeUTFBytes(content.toXMLString()); //像文件中写入内容。
fileStream.close(); //完成写入,这时我们打开桌面的test.txt可以看到内容。
}
上面五句代码让我在我的桌面创建了名为test.xml的文件,并且写入了content。
这里有三个地方我们要注意
1. File.desktopDirectory — 因为AIR可以在Mac和Windows下运行,所以我们最好不要指定固定的地址,这里File.desktopDirectory的意思就是指向我系统的桌面,因为我是mac,所以实际返回的是 /kevinluo/Desktop. 除此之外我们还可以得到如下面这些地址
File.documentsDirectory; //指向用户文档文件夹
File.applicationDirectory; //应用程序安装目录
File.getRootDirectories(); //文件系统根目录
等等,我就不一一列举了,具体的大家可以看File帮助中描述。
2.File.desktopDirectory.resolvePath(“test.xml”) — 获取桌面下的test.xml。这里我们还可以这样写
var file:File = File.desktopDirectory
file = file.resolvePath(“test.xml”)
不过我建议还是直接写在一排,如果像这样分开写的话,当fileStream.open(file,FileMode.WRITE) 打开文件时,如果文件不存在就会报错而不会像上面那样创建新的文件。
在使用的时候发现即使写成一行代码 , 在 fileStream.open(file,FileMode.WRITE) 打开文件时也可能报错,解决方法是:首先把file转化为string,然后再转化回来
var xml_home_path:File=new File(MapEditorConstant.APPLICATION_XML_HOME.nativePath.toString());
3. fileStream.open(file,FileMode.WRITE) –FileMode.WRITE是打开文件的方法,打开文件的方法一共有如下四种
FileMode.READ // 只读方式打开文件
FileMode.WRITE // 写方式打开文件,文件的原有内容会被清除。文件不存在的话创建新文件
FileMode.APPEND //追加方式打开文件,写入的内容总是会添加到文件的末尾。文件不存在的话创建新文件
FileMode.UPDATE //直接打开文件,可以根据需要在指定位置插入数据。文件不存在的话创建新文件
这里我们以WRITE方式创建了新文件,并写入了“我们的第一个文件创建完毕”。
2. 读取已有的文件,修改内容,再更新文件。
publuc function modifyFileDemo():void{
var file2:File = File.desktopDirectory.resolvePath(“test.xml”); //读取刚才创建的test.xml
var fs:FileStream = new FileStream();
fs.open(file2,FileMode.READ); //以只读方式打开
var ct:XML = new XML(fs.readUTFBytes(fs.bytesAvailable)); //获取xml内容
ct.content = “我们的第一个文件修改完毕” //修改content节点下的内容
fs.open(file2,FileMode.WRITE); //重新以写方式打开文件,目的在于清除原有的内容
fs.writeUTFBytes(ct.toXMLString()) //写入修改过后的XML
fs.close()
}
这里我用了READ和WRITE的组合。在实际的使用中我们可以判断一个xml文件的大小来限制单个文件写入过大。
3.删除文件。
删除文件是最简单的。
public function deleteFIleDemo():void{
var file2:File = File.desktopDirectory.resolvePath(“test.xml”);
if(file2.exists){ //判断文件是否存在
file2.deleteFile() //删除文件
}
}
如果使用file2.moveToTrash()则将文件移到垃圾箱
4.拷贝文件/移动文件
public function copyFileDemo():void{
var sourceFile:File = File.desktopDirectory.resolvePath(“test.xml”) //获取源文件
var newFile:File = File.desktopDirectory.resolvePath(“test2.xml”) //创建目标文件
sourceFile.copyTo(newFile,true) //执行拷贝,如果是移动的话sourceFile.moveTo(newFile,true)
}
5. 异步与同步
AIR对文件的操作分为异步与同步两种方式。上面1–4介绍的是同步方式,其中的一些方法有另一个异步方式,看下面的列表
File.copyTo() — File.copyToAsync()
File.moveTo() — File.moveToAsync()
File.deleteDirectory() — File.deleteDirectoryAsync()
File.deleteFile() — File.deleteFileAsync()
File.getDirectoryListing() – File.getDirectoryListingAsync()
File.moveToTrash() — File.moveToTrashAsync()
FileStream.open — FileStream.openAsync()
使用异步方式时我们需要监听EVENT.COMPLETE和IOErrorEvent.IO_ERROR事件来获取file的操作结果。我拿上面的拷贝做个例子
pirvate funnction copyFile(sourceFIlePath:String, targetFIlePath:String):void{
var sourceFile:File = File.desktopDirectory.resolvePath(sourceFIlePath) //获取源文件
var newFile:File = File.desktopDirectory.resolvePath(targetFIlePath) //创建目标文件
sourceFile.addEventListener(Event.COMPLETE,completeHandle) //监听文件操作complete事件
sourceFile.copyToAsync(newFile,true) ; //开始拷贝,异步方式
this. showLoadingBar() //打开loading图标
}
private function completeHandle():void{
Alert.show(“拷贝文件完成”)
this.closeLoadingBar() //关闭loading图标
}
异步方式的好处是我们可以从中实行一些别的操作,比如出现一个loading的提示之类。
OK, 休息了
我们想想文件操作都会有什么内容,无非是创建,修改,删除,移动,拷贝。在这个过程中我们会涉及到一些周边的操作,比如文件夹,文件选择器,文件列表,文件信息获取等。 我就围绕创建,修改,删除,移动,拷贝来展开我们的教程。因为内容比较多,基于迷你教程每篇都短小,易读的原则。我分为两篇,今天先讲第一篇,基本的操作,下一篇我再加入上面所说周边的操作相对深一步的讲解。
Air的文件操做主要涉及两个类,FIle和FileStream。一般来说我们不会直接以文本形式保存文件,那样的内容不易于修改,所以这里我以xml 文件为例。
Note: 下面所有的function可以直接复制到你的代码中运行
1.创建新文件。
public function createFileDemo():void{
var file:File = File.desktopDirectory.resolvePath(“test.xml”) //尝试从系统桌面获取test.xml文件。
var fileStream:FileStream = new FileStream(); // 创建FileStream 对象,用于读写文件
fileStream.open(file,FileMode.WRITE); //以WRITE方式打开file, 如果file中对应的文件不存在,创建新文件
//准备文件的内容
var content:XML =
我们的第一个文件创建完毕
fileStream.writeUTFBytes(content.toXMLString()); //像文件中写入内容。
fileStream.close(); //完成写入,这时我们打开桌面的test.txt可以看到内容。
}
上面五句代码让我在我的桌面创建了名为test.xml的文件,并且写入了content。
这里有三个地方我们要注意
1. File.desktopDirectory — 因为AIR可以在Mac和Windows下运行,所以我们最好不要指定固定的地址,这里File.desktopDirectory的意思就是指向我系统的桌面,因为我是mac,所以实际返回的是 /kevinluo/Desktop. 除此之外我们还可以得到如下面这些地址
File.documentsDirectory; //指向用户文档文件夹
File.applicationDirectory; //应用程序安装目录
File.getRootDirectories(); //文件系统根目录
等等,我就不一一列举了,具体的大家可以看File帮助中描述。
2.File.desktopDirectory.resolvePath(“test.xml”) — 获取桌面下的test.xml。这里我们还可以这样写
var file:File = File.desktopDirectory
file = file.resolvePath(“test.xml”)
不过我建议还是直接写在一排,如果像这样分开写的话,当fileStream.open(file,FileMode.WRITE) 打开文件时,如果文件不存在就会报错而不会像上面那样创建新的文件。
在使用的时候发现即使写成一行代码 , 在 fileStream.open(file,FileMode.WRITE) 打开文件时也可能报错,解决方法是:首先把file转化为string,然后再转化回来
var xml_home_path:File=new File(MapEditorConstant.APPLICATION_XML_HOME.nativePath.toString());
3. fileStream.open(file,FileMode.WRITE) –FileMode.WRITE是打开文件的方法,打开文件的方法一共有如下四种
FileMode.READ // 只读方式打开文件
FileMode.WRITE // 写方式打开文件,文件的原有内容会被清除。文件不存在的话创建新文件
FileMode.APPEND //追加方式打开文件,写入的内容总是会添加到文件的末尾。文件不存在的话创建新文件
FileMode.UPDATE //直接打开文件,可以根据需要在指定位置插入数据。文件不存在的话创建新文件
这里我们以WRITE方式创建了新文件,并写入了“我们的第一个文件创建完毕”。
2. 读取已有的文件,修改内容,再更新文件。
publuc function modifyFileDemo():void{
var file2:File = File.desktopDirectory.resolvePath(“test.xml”); //读取刚才创建的test.xml
var fs:FileStream = new FileStream();
fs.open(file2,FileMode.READ); //以只读方式打开
var ct:XML = new XML(fs.readUTFBytes(fs.bytesAvailable)); //获取xml内容
ct.content = “我们的第一个文件修改完毕” //修改content节点下的内容
fs.open(file2,FileMode.WRITE); //重新以写方式打开文件,目的在于清除原有的内容
fs.writeUTFBytes(ct.toXMLString()) //写入修改过后的XML
fs.close()
}
这里我用了READ和WRITE的组合。在实际的使用中我们可以判断一个xml文件的大小来限制单个文件写入过大。
3.删除文件。
删除文件是最简单的。
public function deleteFIleDemo():void{
var file2:File = File.desktopDirectory.resolvePath(“test.xml”);
if(file2.exists){ //判断文件是否存在
file2.deleteFile() //删除文件
}
}
如果使用file2.moveToTrash()则将文件移到垃圾箱
4.拷贝文件/移动文件
public function copyFileDemo():void{
var sourceFile:File = File.desktopDirectory.resolvePath(“test.xml”) //获取源文件
var newFile:File = File.desktopDirectory.resolvePath(“test2.xml”) //创建目标文件
sourceFile.copyTo(newFile,true) //执行拷贝,如果是移动的话sourceFile.moveTo(newFile,true)
}
5. 异步与同步
AIR对文件的操作分为异步与同步两种方式。上面1–4介绍的是同步方式,其中的一些方法有另一个异步方式,看下面的列表
File.copyTo() — File.copyToAsync()
File.moveTo() — File.moveToAsync()
File.deleteDirectory() — File.deleteDirectoryAsync()
File.deleteFile() — File.deleteFileAsync()
File.getDirectoryListing() – File.getDirectoryListingAsync()
File.moveToTrash() — File.moveToTrashAsync()
FileStream.open — FileStream.openAsync()
使用异步方式时我们需要监听EVENT.COMPLETE和IOErrorEvent.IO_ERROR事件来获取file的操作结果。我拿上面的拷贝做个例子
pirvate funnction copyFile(sourceFIlePath:String, targetFIlePath:String):void{
var sourceFile:File = File.desktopDirectory.resolvePath(sourceFIlePath) //获取源文件
var newFile:File = File.desktopDirectory.resolvePath(targetFIlePath) //创建目标文件
sourceFile.addEventListener(Event.COMPLETE,completeHandle) //监听文件操作complete事件
sourceFile.copyToAsync(newFile,true) ; //开始拷贝,异步方式
this. showLoadingBar() //打开loading图标
}
private function completeHandle():void{
Alert.show(“拷贝文件完成”)
this.closeLoadingBar() //关闭loading图标
}
异步方式的好处是我们可以从中实行一些别的操作,比如出现一个loading的提示之类。
OK, 休息了
评论
2 楼
pangxin12345
2011-06-07
行啊! 帅气不愧是帅气呀
1 楼
wecley
2011-03-03
var file2:File = File.desktopDirectory.resolvePath(“test.xml”); //读取刚才创建的test.xml
var fs:FileStream = new FileStream();
fs.open(file2,FileMode.READ); //以只读方式打
var fs:FileStream = new FileStream();
fs.open(file2,FileMode.READ); //以只读方式打
发表评论
-
[转]构建Flex应用的10大误区
2011-05-31 23:29 751原文地址:http://www.infoq ... -
转:flex滤镜:聚光灯效果、放大镜效果、缩放模糊效果、浮雕效果和水波效果
2011-05-30 21:30 1765可惜提供的源代码没有相应的libs包 1:聚光灯效果: 实 ... -
Air File类使用方法
2010-09-06 10:24 2286air file 系统中文件或目 ... -
air 读取服务器端文件
2010-09-03 13:44 1026import flash.events.Event; ... -
air下载文件
2010-09-02 10:43 834http://www.code-design.cn/blogd ... -
三维程序/游戏制作基本常识
2010-08-25 13:19 912Furry/DDM君: 很多flash3d初 ... -
FLEX的RIA应用程序中配置文件(*-app.xml)的说明
2010-06-22 16:53 884<?xml version="1.0" ... -
Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法
2010-05-31 17:21 2139AIR教程 Adobe AIR右键菜单和系统托盘(Tray ... -
Flash Bulider4注册码生成器
2010-05-18 11:03 1826Flash Builder 4正式版发布,很高兴还有简体中文 ... -
FLex视图模式与视图转换
2010-05-10 14:13 18293.2 视图模式与视图转换 3.2.1 视图模式 Fle ... -
FusionCharts中文乱码问题
2010-05-06 11:17 2888从 http://www.infosoftglobal.com ... -
Flex ShareObject简单应用
2010-04-26 17:47 1068[size=medium]Share object一般用来保存 ... -
FLEX问题总汇(1)
2010-04-23 15:17 879论坛一直有些问题有人重复的发帖,今天有空就做了点总结,希望和大 ... -
Flex 开发: 类的反射
2010-04-23 10:34 1044Flex 反射简介 在很多时候反射为程序的动态性提供了一种可 ... -
Flex 3 体验:AdvancedDataGrid的使用(第一部分)
2010-04-22 17:14 1414今天我们要说的是官方文档中用了整章介绍的AdvancedDat ... -
FLEX alive pdf 打印pdf
2010-04-22 10:33 1948FLEX alive pdf 打印pdf ,废话不多说了,代码 ... -
FLEX AIR 连接local SQL database
2010-04-22 10:19 1319FLEX AIR 连接本地LocalSQL实现增删改查,废话不 ... -
将flex页面数据导出到excel
2010-04-20 10:07 1630本例实现将flex中的数据 ... -
FLEX TEXTINPUT restrict(正则表达式,约束,限定)
2010-04-19 16:28 2087通常要对输入TextInput中 ... -
actionscript 中 如何控制数字精度(小数位数)
2010-04-16 16:58 1649很简单的一件事,但是如果不知道的话一样很麻烦。Number包里 ...
相关推荐
在AIR应用程序中,`META-INF`可能包含`application.xml`,这是描述AIR应用设置和依赖的XML文件。 通过这个项目,开发者和学习者可以了解如何使用Flex构建用户界面,如何配置和调用WebService来获取外部数据,以及...
标题中提到的配置文件指的是在Flex AIR应用程序中,需要通过修改某些文件来达到重启应用程序的效果。这些配置文件可能包括了应用程序描述文件、配置文件以及一些特定的属性设置。 描述部分表明本节内容将会详细介绍...
这段代码通过HTTPService组件从外部XML文件加载数据,并将其解析为树形数据结构,然后在界面上展示出来。 知识点: 1. **Flex框架**: Flex是一种用于构建富互联网应用程序(RIA)的开源框架,特别适用于创建复杂的...
在 Flex 4 中,我们可以从不同来源接收外部参数,如启动参数、URL 参数或通过 XML 配置文件。这些参数可以用来初始化应用状态、设置默认值或根据用户需求动态调整界面。 1. **启动参数**:当应用程序被启动时,可以...
Flex是一种用于开发交互式应用程序的框架,它允许开发者利用Adobe Flash Player和Adobe AIR创建丰富的互联网应用程序。在Flex中,CSS(层叠样式表)被广泛应用于美化用户界面,使得应用程序不仅功能强大,而且视觉上...
这种文件通常包含一系列的命令,例如启动ADL并指向AIR应用的描述文件(.xml)和主类文件(.swf)。批处理文件可以简化运行过程,避免手动输入复杂的命令。 "clock1.1.exe" 很可能是编译后的AIR应用可执行文件,它...
- **测试程序**: 在 Flex Builder 内部或外部环境中测试程序。 - **打包程序**: 将应用程序打包成 AIR 安装包。 - **使用 Flex SDK**: - **创建应用程序描述文件**: 使用 XML 文件定义应用程序的元数据。 - **...
Flex 2着重于解决编译过程与服务器端数据管理分离的问题,同时发布了免费的SDK(软件开发工具包)以支持Flex应用的外部编译。 在社区支持方面,Tariq Ahmed创建了首个专注于Flex的门户网站***,该网站成为了收集...
通常会有以下文件和文件夹:src目录存放源代码,assets存储静态资源如图片和字体,lib包含外部库文件,Flex配置文件如flex-config.xml定义编译选项,以及build或dist目录用于存放编译后的SWF或AIR应用程序。...
此外,如果没有数据库支持,数据管理可能需要通过其他方式实现,比如使用本地XML文件或者模拟数据。 总的来说,Flex界面开发框架结合Cairngorm为开发者提供了一种强大的工具,帮助他们构建功能强大、易于维护的RIA...
Flex是一种用于构建跨浏览器、跨平台的富互联网应用(RIA)的软件框架,它使用Adobe Flash Player或Adobe AIR来呈现界面,并支持多种编程语言,如ActionScript。 ### Flex基础知识 1. **Flex简介**: - Flex是一...
### 关于在Flex的AIR应用程序中执行EXE文件的知识点 #### 一、Flex与Adobe AIR简介 Flex是一个用于构建跨平台的桌面应用程序和移动应用程序的开源框架。它使用MXML(Mark-up Language)和ActionScript语言进行开发...
这些UI元素是通过XML标记定义的,而它们的行为则通过外部的ActionScript文件(upload.as)来控制。 #### 2. **ActionScript逻辑实现** 接下来是ActionScript部分,这部分负责处理文件选择、上传过程中的进度显示等...
4. `mimetype`:这个文件是Adobe AIR应用的一部分,用于标识文件为Flex应用。 5. `.project`:Eclipse或Flex Builder项目的配置文件,定义了项目结构和构建设置。 6. `测试网站.txt`:可能包含了用于测试RSS订阅器...
创建AIR应用程序需要使用Flex Builder或命令行工具,生成AIR描述文件,并配置应用程序的窗口、图标等属性。 **4.3.3 导出AIR文件** 完成应用程序开发后,可以导出AIR文件,用户通过这个文件即可在本地安装和运行...
5. `libs`:这是一个库文件夹,通常存放Flex项目所依赖的外部库、SWC文件或其他资源。开发者可以在这里添加自定义组件或第三方库来扩展Flex的功能。 6. `src`:这是源代码目录,包含Flex项目的ActionScript类文件。...
- **加载数据**:通过 `URLLoader` 类加载外部 XML 或文本文件,并解析内容。 #### 五、认识 AIR 窗体 - **概念**:Adobe AIR 支持创建带有窗口菜单栏、工具栏等功能的桌面应用程序。 - **示例**:创建一个具有...
10. **图形渲染**: Flex使用了Flash Player或Adobe AIR作为运行环境,它们提供了高效的图形渲染能力。在图片查看器中,这确保了流畅的图片显示和交互体验。 综上所述,Flex图片查看器源码涉及到Flex框架的多个核心...
如果是XML文件,可以使用XMLDocument类解析。 2. **Flex中的数据导出**: - **数据格式化**:在导出数据之前,需要将应用程序内部的数据格式化为适合导出的格式,如XML、JSON或CSV。 - **FileReference的save()...