我已经创建了一个绘画应用程序,当用户想要保存他的绘画时,他只需点击保存按钮,一个对话框就会弹出来--或者应该这样做。
当在dev机器上进行本地测试时,这是没有问题的,但只要在浏览器中加载应用程序,它就不会工作。即使我在浏览器中加载本地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.2BTW。
发布于 2012-02-15 20:57:46
这是一个安全问题。保存文件对话框窗口现在只能作为直接用户事件(如单击)的结果打开。一种解决方案是在创建图像时通知用户,并询问用户是否要将文件保存到本地。如果他单击yes,则调用保存方法。
以下是有关此更改的更多信息:
http://www.bogdanmanate.com/2010/05/12/flex-error-2176-when-using-filereference/
希望这能有所帮助。祝你今天愉快。
https://stackoverflow.com/questions/9293648
复制相似问题