1

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

在开发机器上进行本地测试时没问题,但只要将应用程序加载到浏览器中,它就无法工作。即使我在浏览器中加载本地 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。

4

1 回答 1

5

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

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

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

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

于 2012-02-15T12:57:46.283 回答