actionscript 3 filereference'保存'抛出错误

问题描述:

我有一个代码在本地保存一个显示对象作为图像文件,但是在某个时候它开始抛出错误2174.这个代码是从上下文菜单点击事件或键盘事件。actionscript 3 filereference'保存'抛出错误

var sourceBmd:BitmapData = new BitmapData(displayObject.width,displayObject.height);    
sourceBmd.draw(displayObject,new Matrix(displayObject.width,0,0,displayObject.height)); 
var jpgEncoder:JPGEncoder = new JPGEncoder(80); 
var byteArray:ByteArray = jpgEncoder.encode(sourceBmd); 
try 
{ 
    filereference.save(byteArray,"posterImage.jpg");  
} 
catch (e:Error) 
{ 
    Debugging.alert("error: ",e.message);   
} 

正如你所看到的,filereference只有一个动作 - 所以没有理由抛出错误2174。 万一你想知道 - 我出版的Flash播放器10.0

更新:我发现它与Flash播放器版本有关:在10.3工作,而在11.1如果失败。

有什么想法? 欢呼声, 埃雷兹

+0

请确保您构建Flash Player版本10.0.0或更高 – 2012-04-02 13:44:46

+0

我这样做 - 这并不很长一段改变而 – eRez 2012-04-03 06:17:56

+0

检查从@The_asMan职。你不能以编程方式触发save()。它必须位于“用户操作处理函数”中。例如在按钮点击的处理函数中。 – 2012-04-03 06:55:40

是否this link解决问题了吗?

此外,您是否尝试在错误发生后重新启动闪存IDE?

+0

我在搜索答案时遇到了该链接。在浏览器内部工作时会出现问题,所以我没有看到重新启动IDE会如何影响它 – eRez 2012-04-03 06:37:29

+0

我问你突然开始出现错误的原因是为什么我要求你重新启动。经常在闪存通信中,事情并不真正反映一个小的变化... – loxxy 2012-04-03 07:04:21

通过的docs读书,我可以假设:

  1. 你在Flash Player中运行10
  2. 你不叫filereference.cancel()的情况下,当用户点击“取消”或“关闭像“在打开的对话框中;试试吧
+0

谢谢,但我也阅读该文档,我确实需要时调用'cancel()',但即使我不点击取消按钮 – eRez 2012-04-03 06:38:35

+0

唯一的其他建议,我可以拿出:从**保存数据本地文件** [这里](http://help.adobe.com/en_US/as3/dev /WS5b3ccc516d4fbf351e63e3d118a9b90204-7cf8.html);在适当的情况下尝试使用和不使用'fileRef.cancel()'。检查他们是否抛出相同的错误。如果他们这样做,那么我会重新安装播放器,浏览器插件,IDE(voodoo舞蹈 - 如果它是Flash Builder)。如果他们不抛出错误,我会检查你的代码和Adobe之间的差异。这是你在项目中实际使用'FileReference'的唯一地方吗? – 2012-04-03 12:48:40

+0

感谢,但它是从用户交互调用 - 无论是上下文菜单单击事件或键盘事件 - 都产生相同的错误和是 - 我发布的版本10。是的,我也阅读该文档,所以不 - 我没有任何其他文件参考同时处于活动状态。 – eRez 2012-04-03 06:35:26

+0

发布错误发生时的堆栈跟踪 – 2012-04-03 15:28:16