我在Adobe AIR for iPad中遇到了共享对象的问题。
幸运的是我能找到解决方案,但我真的很想知道为什么我必须这样做。
问题如下: 我有一个使用共享对象存储一些数据的应用程序。当我在桌面上编译它或者直接从Flash Pro调试到我的ipad2时它工作得很好。但我意识到,当我将应用程序上传到商店时,它并没有起作用,当我使用临时配置文件进行编译时,它也无法正常工作。
过了一会儿,我意识到问题就出现了:
var so:SharedObject = SharedObject.getLocal("appData");
if( so.data.varName != undefined ) ...
当我评论if时,ad hoc上的app开始工作。所以我用:
替换了那一行if( so.data.hasOwnProperty("varName") ) ...
它有效!
有人可以解释我为什么要这样做?它在测试swf时在Flash Pro上运行得很好,当我将应用程序从flash pro直接调试到我的ipad时,但是当我为ad hoc或app store编译时它没有用。有什么想法吗?
谢谢!
ps:当对象的动态属性不存在时,默认值是否可能与常量undefined不同?为什么当我使用Swf时,这是否正常? 我用特殊编译中的一个不存在的属性的值和类型填充了一个文本字段,它表示与swf相同,值:undefined,typeof:undefined
答案 0 :(得分:0)
当在ios发布模式下构建时,Adobe AIR始终存在一个问题,它总是将一个否定的布尔值计算为true。目前的解决方法是从
更改if语句if (!bool) {
foo();
}
else {
bar();
}
到
if (bool) {
bar();
}
else {
foo();
}