Flash AS3 FileReference.save()在本地测试但不在浏览器中测试时起作用

Flash AS3 FileReference.save()在本地测试但不在浏览器中测试时起作用,flash,actionscript-3,filereference,Flash,Actionscript 3,Filereference,我已经创建了一个绘画应用程序,当用户想要保存他的画时,他只需点击保存按钮,就会弹出一个对话框——或者应该这样做 在dev机器上进行本地测试时没有问题,但只要在浏览器中加载应用程序,它就无法工作。即使我在浏览器中加载本地SWF文件,它也不会工作 下面的代码是我用来保存文件的代码,正如我所说,它在本地工作得很好,但每当它进入浏览器时,它就不会出现。保存对话框根本不会弹出 有什么建议吗 var bitmapData:BitmapData = new BitmapData(canvas.width, c

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

在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.2 BTW.

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

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


希望这有帮助。祝您愉快。

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

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


希望这有帮助。祝你今天愉快。

非常感谢。我上面粘贴的代码是从我创建的自定义事件调用的,这就是为什么它不起作用。我把它改了,所以它是从一个鼠标事件中调用的a,我们开始!我也祝你愉快。太好了!这可能是一个恼人的功能,但它确实可以防止一些讨厌的东西。顺便说一句,如果您尝试在没有UIA的情况下调用FileReference.save,它不会在调试播放器中抛出和出错吗?我没有尝试try&catch语句,但至少它没有抛出我正在侦听的IOErrorEvent。如果它扔出去,我会有目标的…非常感谢。我上面粘贴的代码是从我创建的自定义事件调用的,这就是为什么它不起作用。我把它改了,所以它是从一个鼠标事件中调用的a,我们开始!我也祝你愉快。太好了!这可能是一个恼人的功能,但它确实可以防止一些讨厌的东西。顺便说一句,如果您尝试在没有UIA的情况下调用FileReference.save,它不会在调试播放器中抛出和出错吗?我没有尝试try&catch语句,但至少它没有抛出我正在侦听的IOErrorEvent。如果它扔出去,我会有目标的。。。