AS3 FileReference.save()在本地测试但不在浏览器中工作

时间:2012-02-15 12:45:31

标签: flash actionscript-3 filereference

我创建了一个绘画应用程序,当用户想要保存他的绘图时,他只需点击保存按钮并弹出一个对话框 - 或者应该这样做。

在开发机器上进行本地测试时没有问题,但只要应用程序在浏览器中加载,它就无法运行。即使我在浏览器中加载本地SWF文件也无法正常工作。

下面的代码就是我用来保存文件的内容,因为它说它在本地工作正常,但无论什么时候进入浏览器它都不会。保存对话框根本不会弹出。

有什么建议吗?

var bitmapData:BitmapData = new BitmapData(canvas.width, canvas.height);
bitmapData.draw(canvas);
var jpg:JPEGEncoder = new JPEGEncoder(100);
var ba:ByteArray = jpg.encode(bitmapData);

file = new FileReference();
file.addEventListener(Event.COMPLETE, fileSaveComplete);
file.addEventListener(IOErrorEvent.IO_ERROR, error);
file.save(ba, 'FileName.jpg');

运行FlashPlayer 11并编译为10.2 BTW。

1 个答案:

答案 0 :(得分:5)

这是一个安全问题。现在只能打开一个保存文件对话框窗口,直接用户事件,如点击。一种解决方案是在创建映像时通知用户,并询问他是否要在本地保存文件。如果他点击是,则调用保存方法。

以下是有关此更改的更多信息:

http://www.bogdanmanate.com/2010/05/12/flex-error-2176-when-using-filereference/

希望这会有所帮助。祝你有个美好的一天。