首次使用 adobe air app 。不知道下面的代码是什么错误。它没有警告“不”的价值。
请注意,saveData()
和getData()
来自此question。
function check(){
var d1 = getData('item1');
var d2 = getData('item2');
if (d1 && d2) {
alert('yes');
} else {
alert('no');
}
}
saveData('item1','value1');
saveData('item2','value2');
// I know that its ridiculous to save the data and then reset it.
// But This is how the main code works. sorry.
air.EncryptedLocalStore.reset();
check();
答案 0 :(得分:1)
评估表达式d1 && d2
时,您正在执行逻辑AND operator。
<强>&安培;&安培; (逻辑AND) - 返回expression1,如果它为false或者可以转换为false,则返回expression2。
大概当你测试if(d1 && d2)
条件为真时,在两个实例都被加载时警告“是”。
只有在失败时,例如d1
或d2
null
才会提醒“否”。
答案 1 :(得分:1)
在检查之前,您正在从ELS清除数据:
flash.data.EncryptedLocalStore.reset():清除整个 加密本地存储,删除所有数据。
我不确定你为什么这样做或者它是如何为你工作(正如你声称的那样)但是如果你说它是必需的而不是它的要求。假设这实际上正在工作并且不会给你带来问题,那么很多人都想修改这个逻辑,因为它非常奇怪。
此外,传递给条件的参数应该键入为字符串,条件应检查这些字符串的长度是否为零。
试试这个:
function check():void
{
var d1:String = getData("item1");
var d2:String = getData("item2");
if (d1.length && d2.length)
{
alert("yes");
}
else
{
alert("no");
}
}
saveData("item1","value1");
saveData("item2", "value2");
// This is ghetto!
air.EncryptedLocalStore.reset();
check();
为避免错误和问题,您应该严格键入代码。