AS3 AIR(ios和android)CameraRoll问题

时间:2013-03-26 16:28:54

标签: android ios actionscript-3 mobile air

我一直在努力解决一个星期左右的问题。谷歌搜索无济于事。我目前正在开发一款iOS / Android应用程序,该应用程序在游戏中具有截屏功能,并将其显示在移动设备的图库中。

我正在使用CameraRoll对象,问题是屏幕上的某些对象已应用平滑。但是CameraRoll截图忽略了这一点。这使得最终的屏幕截图有一些带锯齿的物体。

谷歌搜索时,我发现了一些关于同一问题的呼救,但没有答案。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

闪存中的Jaggies很常见,因为默认情况下禁用位图上的平滑(更多cpu密集)。我建议从CameraRoll MediaEvent.SELECT事件创建一个新的位图。在里面,它应该返回event.data MediaPromise object。在其中,您应该找到一个只读file属性,您应该可以在其中找到图像。

然后,只需要通过平滑创建新图像。

var img:Bitmap = new Bitmap();
img.bitmapData = file.bitmapData;
img.smoothing = true;
addChild(img);

我之前从未在手机上试过这个,但我认为你遇到了it's a common issue


<强>附录:

如果您遇到基于系统的屏幕截图服务的问题,您可以使用纯AS3创建自己的屏幕截图服务。逻辑是,AS3应该对舞台进行逐像素块复制(从而尊重图像的平滑值)。

试试这个:

var myBitmapData:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
myBitmapData.draw(stage);