我想保存我的Array的结构并在下一次打开AIR应用程序时加载它。有没有办法将它存储到EncryptedLocalStore项目中,然后在重新打开应用程序时再获取它?是否可以将数组存储到EncryptedLocalStore项目中? AIR
回答
EncryptedLocalStore.setItem()方法在存储内容时需要一个字节数组。要存储数组,只需使用ByteArray.writeObject()方法(如http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/ByteArray.html#writeObject()中所述)将Array转换为ByteArray,然后将其保存到ELS中。
var array:Array = getArray();
var byteArray:ByteArray = new ByteArray();
byteArray.writeObject(array);
EncryptedLocalStore.setItem('somekey', byteArray);
希望这会有所帮助。
更新:添加代码以检索数组。
var byteArray:ByteArray = EncryptedLocalStore.getItem('somekey');
var array:Array = byteArray.readObject() as Array;
更新:用于自定义类。
如果要将自己的自定义类序列化为ByteArray,则可能必须在将对象写入ByteArray之前调用registerClassAlias()。例如。
registerClassAlias("com.example.eg", ExampleClass);
我发现最简单的方法是将数组序列化为字符串,然后将该字符串存储在ELS中。然后当你把它反序列化回到一个数组。
你如何实际“序列化”和“反序列化”数组?使用哪些功能?等 –
如果你有as3corelib你可以使用它来序列化。 http://ntt.cc/2008/10/06/as3corelib-tutorial-how-to-use-json-class-in-flex.html –
- 1. 是否可以将UITableViewCells存储到数组中?
- 2. C++将项目存储到数组中
- 3. Three.js - 是否可以将BoxGeometries或MeshLambertMaterial存储在数组中
- 4. 是否可以将ASPNETDB数据库存储在单独的项目中?
- 5. 是否可以将PostgreSQL(多行)查询结果存储到数组元素中?
- 6. 列出存储的记录EncryptedLocalStore - Adobe Air
- 7. 是否可以将cmake项目链接到子项目?
- 8. 可以告诉AIR是否已插入USB存储设备
- 9. Adobe AIR EncryptedLocalStore问题
- 10. 是否有可能将数组存储在Flex中的DataGridColumn中?
- 11. 是否可以将存储库组添加到Sonatype Nexus中的存储库组中?
- 12. 是否可以将ActiveXObject嵌入到Adobe AIR应用程序中?
- 13. 是否可以将MKS Integrity存储库导入到git中?
- 14. 是否可以将结构存储到链接列表中?
- 15. 是否可以将Audit4j审计事件存储到MongoDB中?
- 16. 如何将项目存储到while循环外的数组中?
- 17. 是否可以在Excel中将数组的元素永久存储在VBA中?
- 18. 是否有可能将二维数组存储在info.plist中
- 19. 是否可以将资源存储在内存缓存中?
- 20. 是否可以将数据存储在solr中?
- 21. 是否可以将整体答案存储在数据库中?
- 22. 是否可以将文件上传到其他项目目录?
- 23. 是否可以将上传的文件包含到项目中?
- 24. 是否可以将C代码嵌入到C#项目中?
- 25. 如何破解Adobe Air中的EncryptedLocalStore?
- 26. 是否可以将默认的项目属性表包含到新项目中?
- 27. 是否可以在NSManagedObject中存储块?
- 28. 是否可以将MySQL数据库转储到seed.rb文件中?
- 29. 是否可以将非Maven库添加到artifactory存储库?
- 30. 是否可以将现有的JCR存储库连接到Liferay?
我会好奇的知道这是否适合你。过去我一直没有用这种方法运气。尽管我会在2年前从HTML/JS AIR应用程序中指出我正在做这件事,所以有可能我做错了,它与JS对象的工作方式不一样,或者它很长 - 固定的错误。 –
我对byteArrays很陌生,一般来说as3只是一个数组。你可能会添加一种方法让我恢复阵列吗?如果我正确分析它,您发布的方法仅用于存储数组。 –
@JasonDean我以前使用过这种方法,它适用于我。如果您使用自定义对象进行保存,则需要在将对象转换为ByteArray之前调用registerClassAlias()。例如,registerClassAlias(“com.example.eg”,ExampleClass); – sangupta