2010-09-13 4 views
1

J'essaye de faire ma première application aérienne adobe basée sur JS.Erreur Javascript lors de l'utilisation de EncryptedLocalStore

Mais je suis bloqué à un point.

Voici le code qui provoque l'erreur

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; 

Lors de la compilation à partir adl, il jette l'erreur -

TypeError: Result of expression 'snxApp' [null] is not an object.

Aide!

Répondre

0

Vous accédez aux propriétés (bytesAvailable et readUTFBytes) de snxApp sans vérifier si elles existent en premier. Si vous n'avez pas encore utilisé setItem pour stocker quelque chose avec ce nom, ce sera null.

Voici un exemple de la façon dont il regarderait avec une déclaration if:

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

Yep. Je l'ai travaillé en utilisant des fonctions try et catch. Cela fonctionne très bien maintenant :-) Merci! – kapeels

+1

@KPL: try/catch fonctionne, mais le code pourrait être plus clair si vous ajoutez une vérification 'if (snxApp! == null)' avant de définir 'semail'. –

Questions connexes