Actionscript 3 使用操作脚本3在本地保存图像

Actionscript 3 使用操作脚本3在本地保存图像,actionscript-3,air,Actionscript 3,Air,Im使用library on AIR下载图像,然后使用Im尝试使用以下命令在本地保存文件: var byteArray:ByteArray = jpgEncoder.encode( loader.getContent("IMG_0004.JPG") ); stream.writeBytes(byteArray); stream.close(); 但我有一个错误: TypeError:错误#1034:类型强制失败:无法转换 闪光显示::Bitmap@8349a81闪光 我不知道如何解决这个问题。

Im使用library on AIR下载图像,然后使用Im尝试使用以下命令在本地保存文件:

var byteArray:ByteArray = jpgEncoder.encode( loader.getContent("IMG_0004.JPG") );
stream.writeBytes(byteArray);
stream.close();
但我有一个错误:

TypeError:错误#1034:类型强制失败:无法转换 闪光显示::Bitmap@8349a81闪光


我不知道如何解决这个问题。

函数
encode
需要一个
BitmapData
对象,但您给它一个
位图

因此,您应该能够做到这一点:

var byteArray:ByteArray = jpgEncoder.encode( Bitmap(loader.getContent("IMG_0004.JPG")).bitmapData );

encode
函数需要一个
BitmapData
对象,但您给了它一个
位图

因此,您应该能够做到这一点:

var byteArray:ByteArray = jpgEncoder.encode( Bitmap(loader.getContent("IMG_0004.JPG")).bitmapData );

DomingoSL,原来的问题解决了,现在的问题是jpeg编码。是的,标准库中的jpeg编码器非常慢。这是你能用的最慢的编码器。
请在:。提示:阅读所有注释,您将得到有关静默保存的答案。

DomingoSL,因此您原来的问题已经解决,现在您的问题是jpeg编码。是的,标准库中的jpeg编码器非常慢。这是你能用的最慢的编码器。
请在:。提示:阅读所有注释,您将得到静默保存的答案。

这给了我:场景1,层“droids上的加载程序”,第1帧,第26 1180行:调用可能未定义的方法位图。我输入了一个错别字,类名是BitMap(小写m)。它可以工作,但函数会为1Mb图片生成大量延迟!,你认为这正常吗???嗯,我不确定这是正确的方法。JPEG编码器用于将位图转换为JPEG。但是你的图像已经是JPEG格式了。执行
loader.getContent
操作时,您将获得图像的位图表示。所以也许你真正想做的是将位图对象转换成ByteArray?我需要用谷歌搜索那个解决方案,但我肯定它就在那里。Doh,我只是重新阅读了你的问题。您只想将下载的JPEG保存到磁盘,对吗?我想这是一种可行的方法,但似乎应该有另一种方法来实现这一点,而不必对图像进行重新编码。这给了我:场景1,“droids上的加载程序”层,第1帧,第26 1180行:调用可能未定义的方法位图。我输入了一个错误,类名是BitMap(小写m)。它可以工作,但该函数会为1Mb图片产生大量延迟!,你认为这正常吗???嗯,我不确定这是正确的方法。JPEG编码器用于将位图转换为JPEG。但是你的图像已经是JPEG格式了。执行
loader.getContent
操作时,您将获得图像的位图表示。所以也许你真正想做的是将位图对象转换成ByteArray?我需要用谷歌搜索那个解决方案,但我肯定它就在那里。Doh,我只是重新阅读了你的问题。您只想将下载的JPEG保存到磁盘,对吗?我想这是一种可行的方法,但似乎应该有另一种方法来实现这一点,即必须对图像进行重新编码。