AS3 FileReference.save()在本地测试时有效,但在浏览器中无效



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

当在开发机器上进行本地测试时,这没有问题,但无论何时在浏览器中加载应用程序,它都不会工作。即使我在浏览器中加载本地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.

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

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

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

希望这能有所帮助。祝你今天过得愉快。

相关内容

  • 没有找到相关文章

最新更新