【发布时间】:2017-06-01 15:39:22
【问题描述】:
我有一个为 iOS 设备开发的 adobe AIR 应用程序,我使用 Adobe Flash Builder 4.7 创建 .ipa 文件。
在 AIR SDK 版本 23 之前,该应用程序运行良好。在 AIR SDK 版本 24 中,尝试访问设备相机时添加了一个 Permissions 类。现在应该以编程方式处理访问相机时的权限,如下所示:https://forums.adobe.com/thread/2250328
我已经尝试在我的代码库中实现给定的示例,并且在以下 sn-p 中,我对权限的引用为空,如下所示:
private function connect():void {
if (Camera.permissionStatus/*permissionStatus is null*/ != PermissionStatus.GRANTED)
{
cam.addEventListener(PermissionEvent.PERMISSION_STATUS,
function(e:PermissionEvent):void {
if (e.status == PermissionStatus.GRANTED) {
connectCamera();
} else {
// permission denied
}
});
try {
cam.requestPermission(); // **when calling this one my app crashes**
} catch(e:Error) {
// another request is in progress
}
} else {
connectCamera();
}
}
private function connectCamera():void
{
video = new Video(640, 480);
video.attachCamera(cam);
addChild(video);
}
我的预感是,在设备上调试时,Flash Builder 使用的是 flex sdk 而不是 AIR SDK,这使得上述属性/方法不可用,如 SDK 文档中所述:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html 可以看到权限状态方法仅适用于 AIR 运行时。
因此,我如何检查并确保我正在使用 AIR 运行时进行调试,并最终避免我的应用在询问用户相机权限时崩溃。
【问题讨论】:
-
我在使用 Starling + AIR 24 时遇到了性能问题,并且 Starling 论坛 (forum.starling-framework.org/topic/air-24-performance-issues) 上有一个相关主题,所以这不仅仅是我的想象。 AIR 24 在许多方面可能是一个糟糕的版本,您可能希望恢复到 AIR 23 而不是寻找解决方法。
标签: ios actionscript-3 flash apache-flex air