AS3使用对话框另存为本地文件(不打开网页浏览器)

谈到在AS3中另存为一个本地文件,许多人会马上想到使用navigateToURL来实现,但是这样做有一个很大的缺陷,那就是在另存为时会调用网页浏览器,以下载的方式另存为,在配置较差的电脑上肯能会卡机,并且这样做总让人觉得不太正统。现在向大家介绍一种通过使用URLLoader与FileReference来使用对话框另存为本地文件方法。
点击查看FileReference类的说明文档

AS3中用来加载文件或数据的通常为以下三个类:
1.Loader(可以加载图片 swf等)
2.URLLoader (主要加载数据 可以用于远程后台请求)
3.URLStream 以流的方式加载,已下载文件的内容将作为原始二进制数据提供。

因为我们需要另存为的文件类型比较广泛,所以在这里我们使用URLLoader类。
首先我们需要通过URLLoader来读取需要另存为的文件。代码如下:

var down_Loader:URLLoader=new URLLoader(); 
down_Loader.dataFormat = URLLoaderDataFormat.BINARY; 
//切记这里一定要用二进制的方式读取,否则另存为后的文件会是乱码!
down_Loader.addEventListener(Event.COMPLETE, Loaded); 
down_Loader.load(new URLRequest("test.dat")); 
function Loaded(evt:Event):void { 
//Code 
} 

文件读取完毕后,原文件的数据都会保存在down_Loader中,下面我们所需要做的仅仅就是用FileReference中的save函数保存这些数据到一个新的文件。(可能会有人发现帮助文档中没有这个函数,但是他的确数存在的)。 在这之前我们必须先实例化FileReference类:

var down:FileReference = new FileReference ();
然后再刚才创建的Loaded这个函数中加入以下代码:
down.save(down_Loader.data,"test.dat");//第二个参数为默认文件名


完整代码如下:
//==========AS3使用对话框另存为本地文件================
import flash.net.FileReference;
import flash.net.URLRequest;

var down:FileReference = new FileReference ();
var down_Loader:URLLoader = new URLLoader();
down_Loader.dataFormat = URLLoaderDataFormat.BINARY; 
down_Loader.addEventListener(Event.COMPLETE, Loaded); 
down_Loader.load(new URLRequest("test.dat"));

function 
Loaded(evt:Event):void
{
   down.save(down_Loader.data,"test.dat");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值