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

Mar*_*tin 1 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');
Run Code Online (Sandbox Code Playgroud)

运行FlashPlayer 11并编译为10.2 BTW.

小智 5

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

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

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

希望这可以帮助.祝你有美好的一天.

  • 非常感谢.我上面粘贴的代码是从我创建的自定义事件中调用的,这就是它无法正常工作的原因.我改变了它,所以它从我们去的MouseEvent调用!希望你也有个愉快的一天. (2认同)