2008年12月12日星期五

flash10新功能之本的保存文件

转自英明神武伟大的L4CD君的博客http://l4cd.net/Blog/article.asp?id=89

测试了一下CS4中FileReference新增的save函数该函数
允许直接把swf中的文本/byteArray保存到客户端
..save () 方法 flash10
function save(data:*, defaultFileName:String = null):void
语言版本: ActionScript 3.0
运行时版本: Flash Player 10
打开一个对话框,允许用户将文件保存到本地文件系统。虽然 Flash Player 没有限制可上载、下载、加载或保存的文件的大小,但是播放器正式支持的文件大小最大为 100 MB。
save() 方法首先打开一个操作系统对话框,让用户输入文件名并在本地计算机上选择用于保存文件的位置。当用户选择了位置并确认保存操作时(例如通过单击“保存”),保存过程即会开始。侦听器接收事件来指示保存操作的进度、成功或失败。为了在调用 save() 后确定对话框和保存操作的状态,ActionScript 代码必须对 cancel、open、progress 和 complete 等事件进行侦听。

关键代码:
function save(defaultFileName:String = null):void {
var _fileRef:FileReference=new FileReference();//用于保存文件 var _encoder:IImageEncoder=new JPEGEncoder(80);//用于编码位图 var bitmapData:BitmapData=new BitmapData(bg.width,bg.height);
bitmapData.draw(bg);//得到位图
var ba:ByteArray=_encoder.encode(bitmapData
);
//编码成JPG图片,质量为80
_fileRef.save(ba, defaultFileName);//保存到磁盘,会出现个系统保存对话框。
ba.clear();}

没有评论: