`

Flex 读写本地文件(Flash Player 10)

    博客分类:
  • Flex
阅读更多

     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:广播时,打开文件进行读取或写入。

 

分享到:
评论

相关推荐

    flex4.6 air 读写文本文件

    Flex是一个用于构建富互联网应用程序(RIA)的开源框架,它基于ActionScript 3.0编程语言和Flash Player或Adobe AIR运行时环境。Adobe AIR则允许开发者创建可以在桌面环境下运行的跨平台应用程序,它提供了访问本地...

    Flex air 读写Excel文件

    Flex Air 是Adobe开发的一款用于构建桌面应用程序的框架,它基于ActionScript 3.0和Flash Player,使得开发者能够使用熟悉的Web技术创建桌面应用。在给定的“Flex air 读写Excel文件”的主题中,我们将深入探讨如何...

    Flex文件传输方式之Flie

    Flex是Adobe公司开发的一种用于创建富互联网应用(RIA)的框架,主要基于ActionScript编程语言和Flash Player或Adobe AIR运行时环境。在这个“Flex文件传输方式之File”的示例中,我们将探讨Flex4如何实现文件上传和...

    flex文件系统应用

    Flex是一种用于构建富互联网应用程序(RIA)的开发工具,它基于ActionScript编程语言和Flash Player或Adobe AIR运行时环境。在Flex中,文件系统的操作是通过File和FileStream类来实现的,这些类提供了对本地文件系统...

    Flex学习—关于Shareobject对象(本地共享对象)

    在IT行业中,Flex是一种基于ActionScript 3.0和Flash Player的开源框架,主要用于构建富互联网应用程序(RIA)。本文将深入探讨Flex中的一个重要组件——ShareObject,也称为本地共享对象,它允许应用程序在用户...

    flex zip压缩算法

    6. **文件操作**:在AS3.0中,`flash.filesystem`和`flash.net`类库提供了读写本地文件和网络文件的能力。开发者可以使用`FileReference`类来上传和下载文件,使用`FileStream`类来读取和写入二进制数据。 7. **...

    Flex 与javascript交互、C#读写Cookie

    Flex是一种基于Adobe Flash Player运行时的开源框架,用于创建具有丰富用户体验的Web应用程序。它主要使用ActionScript编程语言。然而,由于浏览器的沙箱安全模型,Flash Player和JavaScript之间不能直接通信。为了...

    flash安全文档

    Flash Player为各种操作设定了默认权限,如网络访问、本地文件读写等,这些权限在不影响用户体验的前提下提供了基本的安全保障。 ### 端口封锁 为了防止潜在的网络攻击,Flash Player默认封锁了一些高风险端口,...

    flex自己开发的demo

    在IT行业中,Flex是一种基于ActionScript编程语言和Flash Player运行时环境的开发框架,用于创建富互联网应用程序(RIA)。这个名为“flex自己开发的demo”的项目涵盖了几个关键的技术点,让我们逐一深入探讨。 1. ...

    flex开发的记事本,模拟WIN的记事本

    9. **文件I/O操作**:模拟Windows记事本需要处理文件的读写,Flex提供了File和FileStream类来处理这些操作,允许用户打开本地文件,读取内容,进行编辑,然后保存更改。 10. **用户界面设计**:Flex提供了许多预定...

    Flex3ReadWriteExcel(flex3导入导出excel表格)

    在IT行业中,Flex3是一种基于Adobe Flash Player运行时的开源框架,主要用于构建富互联网应用程序(RIA)。本知识点主要聚焦于Flex3如何实现数据的读写操作,特别是与Microsoft Excel文件的交互,即“Flex3...

    [转] [Flash/Flex] Flex框架下的RIA开发现场--第3回 Adobe AIR 2的15项新功能

    3. **本地文件系统访问增强**:开发者可以更方便地读写本地文件,支持文件夹操作,增强了与桌面环境的集成。 4. **64位支持**:AIR 2支持64位操作系统,这意味着应用程序可以利用更多的内存,处理更大规模的数据和...

    Adoe FlexAir教程

    5. **本地存储和访问**:AIR允许应用程序访问本地文件系统,因此你可以了解如何读写文件,存储和检索用户数据。 6. **网络通信**:学习如何使用Flex进行HTTP请求,与Web服务进行交互,或者使用Socket连接进行实时...

    文件Flash文档

    最终生成的EXE文件可以在本地计算机上直接运行,用户无需安装Flash Player,即可使用查阅系统。 后端部分则是系统的服务器端,采用了经典的ASP(Active Server Pages)脚本语言配合Access数据库。ASP是一种微软开发...

    Flex中文帮助

    Flex的核心优势在于利用Flash Player 9作为前端展示层,提供高度直观和交互性极强的用户体验。 ### 构建Flex应用程序的基本步骤 1. **选择UI组件**:开发者可以从一系列预定制的组件中选择,如表格、按钮等,用于...

    基于Flex3的透明记事本源码

    1. **Flex3框架**:Flex3是基于Flash Player运行时环境的开发工具,允许开发者创建具有丰富用户界面的Web应用。它提供了大量的组件库,包括按钮、面板、列表等,以及强大的数据绑定和事件处理机制,方便开发者快速...

    Foundation ActionScript 3.0 with Flash CS3 and Flex

    4. **高级主题**:如网络通信、文件读写、图形绘制等,这些都是开发实际项目时必不可少的知识点。 5. **实战案例**:通过具体的项目示例,让读者能够在实践中学习和应用所学知识。 #### 六、学习资源与社区支持 ...

    flex php写的五子棋

    "放到环境下即可运行"暗示了这个项目可能是自包含的,只需要一个支持PHP运行的环境(如Apache或Nginx服务器搭配PHP解释器)和Flex运行环境(Flash Player或Adobe AIR),就可以在Web上部署并运行。 在【压缩包子...

    flex开发工具的学习.txt

    - **本地文件操作**:通过API可以读写本地文件。 - **网络通信**:利用Flex的网络库进行HTTP请求。 - **数据库操作**:支持SQLite等轻量级数据库。 通过上述知识点的详细介绍,我们不仅了解了Flex开发的基本概念和...

    flex表格复制

    这通常涉及到对剪贴板API的使用,例如Flash Player提供的Clipboard类,它可以用来读写剪贴板的内容。 以下是一些可能涉及的关键知识点: 1. **mx:DataGrid组件**:这是Flex中用于展示结构化数据的标准组件,可以...

Global site tag (gtag.js) - Google Analytics