操作脚本 3 文件引用'save'引发错误



我有一个代码,它将显示对象本地保存为图像文件,但在某个时候它开始抛出错误2174。此代码是从上下文菜单单击事件或键盘事件中调用的。

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上如果失败。

有什么想法吗?干杯eRez

filereference.save需要从用户操作IE调用:鼠标点击
如果不是这样,你就会得到那个错误
同时发布版本10或更高版本。
同样根据文档
请注意,由于Flash Player中添加了新功能,在发布到Flash Player 10时,一次只能激活以下操作之一:FileReference.browse()、FileReference.upload()、FileReference.download()、ileReference.load()和FileReference.save()。否则,Flash Player将引发运行时错误(代码2174)。使用FileReference.cancel()可以停止正在进行的操作。此限制仅适用于Flash Player 10。先前版本的Flash Player不受此同时多个操作限制的影响。

这个链接能解决你的问题吗?

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

通过阅读文档,我可以假设:

  1. 你正在flash播放器10中运行
  2. 当用户在打开的对话框上单击"取消"或"关闭"时,您不会调用filereference.cancel();试试看

相关内容

  • 没有找到相关文章

最新更新