FileReference 类提供了在用户计算机和服务器之间上载和下载文件的方法。操作系统对话框会提示用户选择要上载的文件或用于下载的位置。每个 FileReference对象都引用用户磁盘上的一个文件并且具有一些属性,这些属性包含有关文件大小、类型、名称、创建日期、修改日期和创建者类型(仅限 Macintosh)的信息。
Flash Player10中一个新特性就是更新了ActionScript FileReference API,新的FileReference允许Flash能够直接读写用户系统的数据。在10之前,如果要读写用户的本地文件,Flash只能先把它(文件)返回Server端,然后从Server端加载,之后才可访问,或者下载......
需要注意的是:save和load API只能是在用户交互才能使用例如 用户单击事件
下面提供两个例子:
readfile
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import flash.net.FileReference; import flash.net.FileFilter; import flash.events.IOErrorEvent; import flash.events.Event; import flash.utils.ByteArray; //FileReference Class well will use to load data private var fr:FileReference; //File types which we want the user to open private static const FILE_TYPES:Array = [new FileFilter("text File", "*.txt")]; //called when the user clicks the load file button private function onLoadFileClick():void { //create the FileReference instance fr = new FileReference(); //listen for when they select a file fr.addEventListener(Event.SELECT, onFileSelect); //listen for when then cancel out of the browse dialog fr.addEventListener(Event.CANCEL,onCancel); //open a native browse dialog that filters for text files fr.browse(FILE_TYPES); } /************ Browse Event Handlers **************/ //called when the user selects a file from the browse dialog private function onFileSelect(e:Event):void { //listen for when the file has loaded fr.addEventListener(Event.COMPLETE, onLoadComplete); //listen for any errors reading the file fr.addEventListener(IOErrorEvent.IO_ERROR, onLoadError); //load the content of the file fr.load(); } //called when the user cancels out of the browser dialog private function onCancel(e:Event):void { trace("File Browse Canceled"); fr = null; } /************ Select Event Handlers **************/ //called when the file has completed loading private function onLoadComplete(e:Event):void { //get the data from the file as a ByteArray var data:ByteArray = fr.data; //read the bytes of the file as a string and put it in the //textarea outputField.text = data.readUTFBytes(data.bytesAvailable); //clean up the FileReference instance fr = null; } //called if an error occurs while loading the file contents private function onLoadError(e:IOErrorEvent):void { trace("Error loading file : " + e.text); } ]]> </mx:Script> <mx:Button label="Load Text File" right="10" bottom="10" click="onLoadFileClick()"/> <mx:TextArea right="10" left="10" top="10" bottom="40" id="outputField"/> </mx:Application>
writefile
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import flash.net.FileReference; import flash.events.IOErrorEvent; import flash.events.Event; private static const DEFAULT_FILE_NAME:String = "example.txt"; //FileReference Class well will use to save data private var fr:FileReference; /********** UI Event Handlers **************/ //called when the users types in the textarea //note valueCommit should be used, but is broken in the flex build //I am using private function onInputChange():void { //enable button if there is any text to save saveButton.enabled = (inputField.text.length > 0); } //called when the user clicks the load file button private function onSaveClick():void { //create the FileReference instance fr = new FileReference(); //listen for the file has been saved fr.addEventListener(Event.COMPLETE, onFileSave); //listen for when then cancel out of the save dialog fr.addEventListener(Event.CANCEL,onCancel); //listen for any errors that occur while writing the file fr.addEventListener(IOErrorEvent.IO_ERROR, onSaveError); //open a native save file dialog, using the default file name fr.save(inputField.text, DEFAULT_FILE_NAME); } /***** File Save Event Handlers ******/ //called once the file has been saved private function onFileSave(e:Event):void { trace("File Saved"); fr = null; } //called if the user cancels out of the file save dialog private function onCancel(e:Event):void { trace("File save select canceled."); fr = null; } //called if an error occurs while saving the file private function onSaveError(e:IOErrorEvent):void { trace("Error Saving File : " + e.text); fr = null; } ]]> </mx:Script> <mx:Button label="Save File" right="10" bottom="10" id="saveButton" click="onSaveClick()" enabled="false"/> <mx:TextArea right="10" left="10" top="36" bottom="40" id="inputField" editable="true" change="onInputChange()"/> <mx:Label text="Enter text to save" left="10" top="10" fontWeight="bold"/> </mx:Application>
除了在上面的例子中所示的事件,还播出了由下列事件的API:
ProgressEvent.PROGRESS:提供读取或写入该文件的进展
Event.OPEN:广播时,打开文件进行读取或写入。
相关推荐
Flex是一个用于构建富互联网应用程序(RIA)的开源框架,它基于ActionScript 3.0编程语言和Flash Player或Adobe AIR运行时环境。Adobe AIR则允许开发者创建可以在桌面环境下运行的跨平台应用程序,它提供了访问本地...
Flex Air 是Adobe开发的一款用于构建桌面应用程序的框架,它基于ActionScript 3.0和Flash Player,使得开发者能够使用熟悉的Web技术创建桌面应用。在给定的“Flex air 读写Excel文件”的主题中,我们将深入探讨如何...
Flex是Adobe公司开发的一种用于创建富互联网应用(RIA)的框架,主要基于ActionScript编程语言和Flash Player或Adobe AIR运行时环境。在这个“Flex文件传输方式之File”的示例中,我们将探讨Flex4如何实现文件上传和...
Flex是一种用于构建富互联网应用程序(RIA)的开发工具,它基于ActionScript编程语言和Flash Player或Adobe AIR运行时环境。在Flex中,文件系统的操作是通过File和FileStream类来实现的,这些类提供了对本地文件系统...
在IT行业中,Flex是一种基于ActionScript 3.0和Flash Player的开源框架,主要用于构建富互联网应用程序(RIA)。本文将深入探讨Flex中的一个重要组件——ShareObject,也称为本地共享对象,它允许应用程序在用户...
6. **文件操作**:在AS3.0中,`flash.filesystem`和`flash.net`类库提供了读写本地文件和网络文件的能力。开发者可以使用`FileReference`类来上传和下载文件,使用`FileStream`类来读取和写入二进制数据。 7. **...
Flex是一种基于Adobe Flash Player运行时的开源框架,用于创建具有丰富用户体验的Web应用程序。它主要使用ActionScript编程语言。然而,由于浏览器的沙箱安全模型,Flash Player和JavaScript之间不能直接通信。为了...
Flash Player为各种操作设定了默认权限,如网络访问、本地文件读写等,这些权限在不影响用户体验的前提下提供了基本的安全保障。 ### 端口封锁 为了防止潜在的网络攻击,Flash Player默认封锁了一些高风险端口,...
在IT行业中,Flex是一种基于ActionScript编程语言和Flash Player运行时环境的开发框架,用于创建富互联网应用程序(RIA)。这个名为“flex自己开发的demo”的项目涵盖了几个关键的技术点,让我们逐一深入探讨。 1. ...
9. **文件I/O操作**:模拟Windows记事本需要处理文件的读写,Flex提供了File和FileStream类来处理这些操作,允许用户打开本地文件,读取内容,进行编辑,然后保存更改。 10. **用户界面设计**:Flex提供了许多预定...
在IT行业中,Flex3是一种基于Adobe Flash Player运行时的开源框架,主要用于构建富互联网应用程序(RIA)。本知识点主要聚焦于Flex3如何实现数据的读写操作,特别是与Microsoft Excel文件的交互,即“Flex3...
3. **本地文件系统访问增强**:开发者可以更方便地读写本地文件,支持文件夹操作,增强了与桌面环境的集成。 4. **64位支持**:AIR 2支持64位操作系统,这意味着应用程序可以利用更多的内存,处理更大规模的数据和...
5. **本地存储和访问**:AIR允许应用程序访问本地文件系统,因此你可以了解如何读写文件,存储和检索用户数据。 6. **网络通信**:学习如何使用Flex进行HTTP请求,与Web服务进行交互,或者使用Socket连接进行实时...
最终生成的EXE文件可以在本地计算机上直接运行,用户无需安装Flash Player,即可使用查阅系统。 后端部分则是系统的服务器端,采用了经典的ASP(Active Server Pages)脚本语言配合Access数据库。ASP是一种微软开发...
Flex的核心优势在于利用Flash Player 9作为前端展示层,提供高度直观和交互性极强的用户体验。 ### 构建Flex应用程序的基本步骤 1. **选择UI组件**:开发者可以从一系列预定制的组件中选择,如表格、按钮等,用于...
1. **Flex3框架**:Flex3是基于Flash Player运行时环境的开发工具,允许开发者创建具有丰富用户界面的Web应用。它提供了大量的组件库,包括按钮、面板、列表等,以及强大的数据绑定和事件处理机制,方便开发者快速...
4. **高级主题**:如网络通信、文件读写、图形绘制等,这些都是开发实际项目时必不可少的知识点。 5. **实战案例**:通过具体的项目示例,让读者能够在实践中学习和应用所学知识。 #### 六、学习资源与社区支持 ...
"放到环境下即可运行"暗示了这个项目可能是自包含的,只需要一个支持PHP运行的环境(如Apache或Nginx服务器搭配PHP解释器)和Flex运行环境(Flash Player或Adobe AIR),就可以在Web上部署并运行。 在【压缩包子...
- **本地文件操作**:通过API可以读写本地文件。 - **网络通信**:利用Flex的网络库进行HTTP请求。 - **数据库操作**:支持SQLite等轻量级数据库。 通过上述知识点的详细介绍,我们不仅了解了Flex开发的基本概念和...
这通常涉及到对剪贴板API的使用,例如Flash Player提供的Clipboard类,它可以用来读写剪贴板的内容。 以下是一些可能涉及的关键知识点: 1. **mx:DataGrid组件**:这是Flex中用于展示结构化数据的标准组件,可以...