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

转载 2016年08月31日 10:29:58

谈到在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");
}

相关文章推荐

flash air中读取本地文件的三种方法

actionscript中读取本地文件操作有两种代码如下 1.使用File和FileStream两个类,FileStream负责读取数据的所以操作:(同步操作) ? ...

AS3本地数据的保存

var myLSO = SharedObject.getLocal("foo"); if(myLSO.data.myObj == undefined){     trace("St...

jQuery上传文件控件Uploadify使用

Uploadify是JQuery的一个上传插件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件等。 首先应下载jQuery和uploadify插件 jQuery下载地址:h...

ztree中获取某节点的所有叶子节点

var setting = { data: { simpleData: { enable: true } }, call...

html Demo工具类:网页使用ie另存为htm文件时,css样式文件的图片路径不对,进行修改,并下载图片

网页使用ie另存为htm文件时,css样式文件的图片路径不对,进行修改,并下载图片。 最近老是要做html Demo。就写了一个工具类。   package com.chruan.html.ie...
  • chruan
  • chruan
  • 2013年04月18日 18:16
  • 2196

解析百度网页另存为html文件

  • 2017年10月20日 10:51
  • 10.02MB
  • 下载

[3]Python学习笔记---写一个Python程序把CSDN专栏的所有文章另存为本地网页

了解和学习了Python已经有一小段时间了,是应该写一个程序出来练练手了。 我们知道Python里面有很多的第三方库,而且也支持面向对象的编程思想。作为一个从事了Java编码工作快10年的程序员来说,...

MFC:用另存为对话框保存文件

主要代码: CStdioFile file; CString filepath; TCHAR szFilter[] = _T("文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||")...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AS3使用对话框另存为本地文件(不打开网页浏览器)
举报原因:
原因补充:

(最多只允许输入30个字)