#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.