Flex保存文件 FileReference.save(data,filename)

 

一、save() 方法简介
save()这个方法是flash10新增的,详细如下:

public function save(data:*, defaultFileName:String = null):void

示例:

var file:FileReference=new FileRefrence();

file.save("woko","1.txt");


语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

二、save() 方法使用须知
如果我们要用一些 flash player 10 上才提供的功能时,需要在项目属性里设置一下,否则会找不到此方法,比如flash保存文件或图片到本地的方法:FileReference.save()。flex builder3 默认要求flash player 最低要9,需要改成10.0,修改方法如下:

右键点击项目,在项目属性中找 flex compile, 修改 html wrapper,把 9.0.0 改为10.0.0
但由于我们并不需要 html wrapper 选项,所以待 eclipse 编译过一次之后又可以取消此选项而没有影响了。

三、save()方法的使用

save() 打开一个对话框,允许用户将文件保存到本地文件系统。虽然 Flash Player 没有限制可上载、下载、加载或保存的文件的大小,但是播放器正式支持的文件大小最大为 100 MB。

save() 方法首先打开一个操作系统对话框,让用户输入文件名并在本地计算机上选择用于保存文件的位置。当用户选择了位置并确认保存操作时(例如通过单击“保存 ”),保存过程即会开始。侦听器接收事件来指示保存操作的进度、成功或失败。为了在调用 save() 后确定对话框和保存操作的状态,ActionScript 代码必须对 cancel、open、progress 和 complete 等事件进行侦听。

在成功保存文件之后,将使用本地文件的属性填充 FileReference 对象的属性。如果保存成功,将调度 complete 事件。

每次只能执行一个 browse() 或 save() 会话(因为每次只能调用一个对话框)。

在 Flash Player 中,只有在响应用户事件(例如,在鼠标单击或按键事件的事件处理函数中)时才能成功调用此方法。否则,调用此方法将导致 Flash Player 引发 Error 异常。此限制不适用于应用程序沙箱中的 AIR 内容。



打开一个对话框,允许用户将文件保存到本地文件系统。虽然 Flash Player 没有限制可上载、下载、加载或保存的文件的大小,但是播放器正式支持的文件大小最大为 100 MB。

save() 方法首先打开一个操作系统对话框,让用户输入文件名并在本地计算机上选择用于保存文件的位置。当用户选择了位置并确认保存操作时(例如通过单击“保存”),保存过程即会开始。侦听器接收事件来指示保存操作的进度、成功或失败。为了在调用 save() 后确定对话框和保存操作的状态,ActionScript 代码必须对 cancel、open、progress 和 complete 等事件进行侦听。

FileReference.upload()、FileReference.download()、FileReference.load() 和 FileReference.save() 函数均不分块。这些函数在调用之后即返回,而不会等待文件传输完成。此外,如果 FileReference 对象离开作用域,则该对象中尚未完成的任何事务将在离开作用域时被取消。只要希望上载、下载、加载或保存能继续,就应确保将 FileReference 对象保留在作用域中。

在成功保存文件之后,将使用本地文件的属性填充 FileReference 对象的属性。如果保存成功,将调度 complete 事件。

每次只能执行一个 browse() 或 save() 会话(因为每次只能调用一个对话框)。

在 Flash Player 中,只有在响应用户事件(例如,在鼠标单击或按键事件的事件处理函数中)时才能成功调用此方法。否则,调用此方法将导致 Flash Player 引发 Error 异常。此限制不适用于应用程序沙箱中的 AIR 内容。

参数

data:* — 要保存的数据。数据可以采用几种格式之一,并将进行适当处理:

    * 如果值为 null,则应用程序将引发 ArgumentError 异常。
    * 如果值为 String,则将其保存为 UTF-8 文本文件。
    * 如果值为 XML,则会以 XML 格式将其写入到文本文件,并保留所有格式设置。
    * 如果值为 ByteArray 对象,则会将其逐字写入到数据文件。
    * 如果值并非以上任何一种,则 save() 方法将调用对象的 toString() 方法,将数据转换为字符串,然后将数据保存为文本文件。如果该操作失败,则应用程序将引发 ArgumentError 异常。



defaultFileName:String (default = null) — 对话框中显示的要保存文件的默认文件名。此字符串不能包含以下字符:/ \ : * ? " < > | %

如果 File 对象调用此方法,则文件名将为 File 对象所引用文件的名称。(AIR File 类扩展了 FileReference 类。)

事件

open:Event — 当下载操作开始时调度。


progress:ProgressEvent — 在文件下载操作期间进行定期调度。


complete:Event — 当文件下载操作成功完成时调度。


cancel:Event — 当用户取消对话框时调度。


select:Event — 当用户从对话框中选择要下载的文件时调度。


ioError:IOErrorEvent — 读取或传输文件期间发生输入/输出错误时调度。

引发

IllegalOperationError — 在以下情况下引发:1) 另一个浏览会话正在进行中;每次仅能执行一个文件浏览会话。2) 要下载的文件的名称中包含禁止使用的字符。3) 用户 mms.cfg 文件中的某个设置禁止此操作。


ArgumentError — 如果 data 的类型不是 ByteArray,并且不具有 toString() 方法,则将引发异常。如果 data 的类型不是 XML,并且不具有 toXMLString() 方法,则将引发异常。


Error — 为了响应用户动作(如鼠标事件或按键事件),将不会调用此方法。


MemoryError — 如果 Flash Player 无法为该文件分配内存,则可能会发生此错误。文件可能太大,或者可用的内存可能太小。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值