Можно ли сохранить массив в элементе EncryptedLocalStore?ВОЗДУХ - PullRequest
0 голосов
/ 30 сентября 2011

Я хочу сохранить структуру массива и загрузить ее при следующем открытии приложения AIR. Есть ли способ сохранить его в элементе EncryptedLocalStore, а затем получить его позже, когда я снова открою приложение?

Ответы [ 2 ]

3 голосов
/ 30 сентября 2011

Метод EncryptedLocalStore.setItem () принимает байтовый массив при хранении содержимого.Чтобы сохранить массив, просто используйте метод ByteArray.writeObject () (как описано в http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/ByteArray.html#writeObject()) для преобразования массива в ByteArray - и затем сохраните его в ELS.

var array:Array = getArray();
var byteArray:ByteArray = new ByteArray();
byteArray.writeObject(array);
EncryptedLocalStore.setItem('somekey', byteArray);

Hopeэто помогает.

Обновление: добавлен код для извлечения массива обратно.

var byteArray:ByteArray = EncryptedLocalStore.getItem('somekey');
var array:Array = byteArray.readObject() as Array;

Обновление: для пользовательских классов.

На случай, если вы хотите сериализовать свои собственные пользовательские классыдля ByteArray вам может потребоваться вызвать registerClassAlias ​​() перед записью объекта в ByteArray. Например,

registerClassAlias("com.example.eg", ExampleClass);
0 голосов
/ 30 сентября 2011

Я обнаружил, что проще всего сериализовать массив в строку, а затем сохранить эту строку в ELS. Затем, когда вы вытащите его, десериализуйте его обратно в массив.

...