我正在使用as3在Flash Builder中的iOS上创建应用程序。 该应用使用Starling插件:http://wiki.starling-framework.org/start
我的应用允许用户拍照并自定义。在iOS 8上尝试访问相机或相机胶卷时,我收到错误消息"应用程序丢失了设备上下文!"。
在Android上,我可以用这一行解决这个问题:
Starling.handleLostContext = true;
但有人告诉我,iOS永远不会失去背景(我还没有看到它在iOS 7或更低版本上失去了背景)。
如果我在iOS 8中包含该行,则应用程序会在同一点崩溃,但在这种情况下,应用程序会完全崩溃,并将我返回到主屏幕,而不是显示上一条消息。
我听说iOS 8在使用64位/ 32位插件和扩展方面存在限制,但我没有在这个特定的应用程序中使用任何ANE。是否存在32位可能导致问题或与ANE严格相关的其他区域?
我不会在iOS 7或更低版本或Android上出现此错误,除非我将handleLostContext设置为false。
Adobe Scout未提供任何错误消息。
任何帮助都将不胜感激。
更新: 此代码调用相机功能:
var cameraRoll:CameraRoll = new CameraRoll();
if(CameraRoll.supportsBrowseForImage) {
trace("camera rolling");
cameraRoll.addEventListener(MediaEvent.SELECT, imageSelected);
cameraRoll.addEventListener(flash.events.Event.CANCEL, browseCanceled);
cameraRoll.addEventListener(flash.events.ErrorEvent.ERROR, galleryMediaError);
cameraRoll.browseForImage();
} else {
var alert:Alert = Alert.show("Image browsing is not supported on this device.", "Error", new ListCollection([{label:"OK"}]));
}
更新2:
我已经从AIR SDK 17切换到16,现在它更稳定但有类似的问题
答案 0 :(得分:1)
iOS中的相机胶卷存在已知问题,这会导致stage3d丢失上下文。你的选择:
更多信息: http://forum.starling-framework.org/topic/starling-and-cameraui#post-77339
答案 1 :(得分:0)
我可以在ios 8.3上确认使用AIR 18打开CameraRoll时没有丢失Context3D。
如果问题持续存在,可能是Starling是原因。