我正在尝试制作我的第一个基于 JS 的 adobe air 应用程序。
但是我陷入了困境。
这是导致错误的代码
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: Result of expression 'snxApp' [null] is not an object.
救命!
最佳答案
您正在访问 snxApp
的属性(bytesAvailable
和 readUTFBytes
),而没有首先检查以确保它存在。如果您尚未使用 setItem
来存储具有该名称的任何内容,则它将为 null
。
以下是使用 if
语句的示例:
var snxApp = ...;
var semail;
if (snxApp !== null) {
semail = snxApp.readUTFBytes( snxApp.bytesAvailable );
}
...
关于使用 EncryptedLocalStore 时出现 Javascript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3701071/