使用EncryptedLocalStore时出现Javascript错误

时间:2010-09-13 13:54:22

标签: javascript air

我正在尝试制作我的第一个基于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:表达式'snxApp'[null]的结果不是对象。

帮助!

1 个答案:

答案 0 :(得分:0)

您正在访问bytesAvailable的属性(readUTFBytessnxApp)而未检查以确保它首先存在。如果您尚未使用setItem存储具有该名称的任何内容,则会null

以下是if语句的外观示例:

var snxApp = ...;
var semail;
if (snxApp !== null) {
    semail = snxApp.readUTFBytes( snxApp.bytesAvailable );
}
...