Хранение и сериализация в AS3 / Adobe Flex

#apache-flex #actionscript #air #blackberry-playbook

#apache-flex #actionscript #air #blackberry-playbook

Вопрос:

Я подумал спросить здесь, прежде чем переходить к проблеме с Blackberry Playbook (Adobe Flex)

У меня есть форма поиска и класс SearchCriteria, представляющие входные данные формы поиска, например:

 public class SearchCriteria
{
    private var firstname:String;
    private var surname:String;

    public function SearchCriteria()
    {}

    public function getFirst():String{
           return firstname;
    }
    ...
  

Когда пользователь заполняет форму, я хотел бы кэшировать копию SearchCriteria в памяти, чтобы, если возникнет проблема или пользователь выключит свой планшет, я мог воссоздать форму при повторном входе в систему.

Версия TL; dr: В принципе, каков наилучший способ сериализации и десериализации объектов в Actionscript 3? (особенно в Blackberry Playbook)

Спасибо

Фил

Ответ №1:

Если вы спрашиваете конкретно о сериализации и десериализации, я бы порекомендовал формат AMF3.

Он используется SharedObject, упомянутым Тимофеем Давыдиком. Вы также можете сериализовать объекты с помощью ByteArray.writeObject(), а затем сохранить ByteArray в файл.

Обратите внимание, что если вы хотите использовать строго типизированный объект (рекомендуется), вы должны аннотировать свои классы моделей с помощью метаданных [RemoteClass]. Если вы не хотите, чтобы некоторые свойства сериализовались, используйте [Временные] метаданные.

Ответ №2:

Вы могли бы сериализовать их в формат JSON, используя библиотеку as3corelib.

А затем используйте SharedObject или SQLite (хорошо работает в Playbook).

Ответ №3:

Прочитайте о классе SharedObject.