Adobe AIR - Save local data

2019-04-10 09:18发布

问题:

I'ld like to save variables to an Encrypted Local Store. This example is working but how can I extend it to save more than 1 variable?

// To save variable to ELS (EncryptedLocalStore)

    function  saveItems() {
    var m1:String = "my item 1"; 
// HOW TO ADD THESE?:
    // var m2:String = "my item 2"; 
    // var m3:String = "my item 3"; 
    // var m4:String = "my item 4"; 
    //
    var bytes:ByteArray = new ByteArray(); 
    bytes.writeUTFBytes(m1); 
    EncryptedLocalStore.setItem("item1", bytes);
    }

    // Read it from ELS
    function  getItems() {
    var storedValue:ByteArray = EncryptedLocalStore.getItem("item1"); 
    //
    trace(storedValue.readUTFBytes(storedValue.length));
    }

Thanks.

回答1:

Rinse and repeat what you already have, and avoid duplicate code by moving common functionality into their own methods:

private function saveItems():void {
    var m1:String = "my item 1"; 
    var m2:String = "my item 2"; 
    var m3:String = "my item 3"; 
    var m4:String = "my item 4"; 

    saveItem("item1", m1);
    saveItem("item2", m2);
    saveItem("item3", m3);
    saveItem("item4", m4);
}

private function saveItem(key:String, value:String):void
{
      var bytes:ByteArray = new ByteArray(); 
      bytes.writeUTFBytes(value); 
      EncryptedLocalStore.setItem(key, bytes);
}

A few good references:

http://www.adobe.com/devnet/air/ajax/articles/encrypted_local_store.html

http://help.adobe.com/en_US/air/reference/html/flash/data/EncryptedLocalStore.html