使用EncryptedLocalStore时发生Javascript错误
我正在尝试制作我的第一个基于JS的AdobeAIR应用程序 但我在某一点上卡住了 这是导致错误的代码使用EncryptedLocalStore时发生Javascript错误,javascript,air,Javascript,Air,我正在尝试制作我的第一个基于JS的AdobeAIR应用程序 但我在某一点上卡住了 这是导致错误的代码 var RunUrl = 'http://www.lilpirate.net'; var firstRunUrl = 'http://www.netbloo.com'; var snxApp = air.EncryptedLocalStore.getItem( 'snxApp' ); var semail = snxApp.readUTFBytes( snx
var RunUrl = 'http://www.lilpirate.net';
var firstRunUrl = 'http://www.netbloo.com';
var snxApp = air.EncryptedLocalStore.getItem( 'snxApp' );
var semail = snxApp.readUTFBytes( snxApp.bytesAvailable );
if( semail!='786') {
data = new air.ByteArray();
data.writeUTFBytes( '786' );
air.EncryptedLocalStore.setItem( 'snxApp', data );
var snxUrlToLoad = firstRunUrl;
}
else
var snxUrlToLoad = RunUrl;
从adl编译时,会抛出错误-
TypeError:表达式“snxApp”[null]的结果不是对象
救命啊 您正在访问
snxApp
的属性(bytesavable
和readUTFBytes
),而无需先检查以确保其存在。如果您还没有使用setItem
来存储具有该名称的任何内容,那么它将是null
下面是一个使用if
语句的示例:
var snxApp = ...;
var semail;
if (snxApp !== null) {
semail = snxApp.readUTFBytes( snxApp.bytesAvailable );
}
...
是的。我通过使用try-and-catch函数解决了这个问题。现在效果很好:-)谢谢@KPL:try/catch有效,但是如果在设置
semail之前添加if(snxApp!==null)
检查,代码可能会更清晰。