android - AS3 AIR(ios 和 android)CameraRoll 问题

标签 android ios actionscript-3 mobile air

我已经尝试解决一个问题大约一个星期了。谷歌搜索无济于事。我目前正在开发一个 iOS/Android 应用程序,该应用程序在游戏中有一个功能,可以截取屏幕截图并将其显示在移动设备的图库中。

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

我在谷歌搜索时发现了很多关于同一问题的求助,但没有答案。

非常感谢任何帮助。

最佳答案

flash 中的锯齿很常见,因为位图上的平滑在默认情况下是禁用的(更多 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 应该对舞台进行逐像素 block 复制(从而尊重图像的平滑值)。

试试这个:

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

关于android - AS3 AIR(ios 和 android)CameraRoll 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15642343/

相关文章:

android - 单击 gridview 项目和 editext 获得焦点

java - 如何在android中获取微调器选定的项目?

android - Android Studio 1.5中的Gradle Build Run错误(DebugUtils.class)

objective-c - @synthesize 创建什么 UIView setter

javascript - 从 Instruments Javascript 代码访问 native IOS 功能

actionscript-3 - 条件之间的区别

java - Android,设置背景拉伸(stretch)或放大但永远不会正确

ios - 重命名和重写为 Swift 后对象解码崩溃

actionscript-3 - 针对SoundEvent修复Flash错误1046

actionscript-3 - 使用播放/暂停/停止按钮控制Flash视频上的声音