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

Web端打开文件选择和保存对话框

总体介绍 文件的选择、保存对话框,使用Java 很容易达成。 如果想在Web端使用的话,可以用Applet 达成。 但如果想使用HTML, js 达成的话,也是可以的。不过 web程序对客...
  • oscar999
  • oscar999
  • 2013年03月20日 15:32
  • 10134

java 实现文件下载时,弹出文件保存窗口(IE9)

public static void downloadLocal(HttpServletRequest request,HttpServletResponse response, String ...
  • ying890
  • ying890
  • 2015年07月16日 17:05
  • 2056

MFC——文件打开和保存对话框(CFileDialog)

最近要做一个文件打开和保存的对话框,现将相关的代码记录如下,用以备忘! 所用控件: 2个静态标签(Static Text):用以显示功能标签; 2个文本框(Edit):用以显示打开的文件路径全名要保存...
  • luoweifu
  • luoweifu
  • 2014年04月28日 22:42
  • 55829

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

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

API函数 调用 打开和另存为对话框

  • 2016年04月24日 11:58
  • 3KB
  • 下载

【HTML】前台页面调出文件另存为对话框几种方法

大家都知道,网页上传本地文件可以用来实现,在前台页面调出另存为对话框、将服务器上存放的文件保存到本地那要怎么实现呢?以下便介绍几种实现的思路和方法。 1.调用document.execComma...
  • AKmumu2010
  • AKmumu2010
  • 2012年11月09日 17:56
  • 1504

有些网页,为什么不能通过在浏览器总另存为,进行保存?这种的,应该怎么保存?

如360浏览器,ctrl+s或者右击另存为,没有反应,网页并没有被保存。这可能有两种情况: ①保存比较慢,要等一会儿(大概1分钟),再去保存的文件夹看一下,有可能就发现,已经被保存了。 ②真的就保存不...
  • Ideality_hunter
  • Ideality_hunter
  • 2016年12月11日 11:22
  • 768

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

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

网页存.chm工具可以将网页另存为.chm文件

  • 2009年03月01日 15:21
  • 458KB
  • 下载

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

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

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