В настоящее время я сериализую свой объект модели в экземпляр SharedObject :
try {
var mySo:SharedObject = SharedObject.getLocal("sig");
mySo.clear();
mySo.data.model = _model;
mySo.flush();
} catch ( e:Error ) {
Alert.show( 'Leider konnte kein Modell geladen werden.' );
}
Аналогично, я загружаю сохраненную модель, используя экземпляр SharedObject.Прекрасно работает.
В конечном счете, я бы хотел сериализовать его в файл - что не получается.Вот как это делается:
var fp: File = File.applicationStorageDirectory;
fp = fp.resolvePath( PREFS_FILENAME );
var _prefsStream:FileStream;
_prefsStream = new FileStream();
_prefsStream.open( fp, FileMode.WRITE );
_prefsStream.endian = Endian.BIG_ENDIAN;
_model.writeExternal( _prefsStream );
_prefsStream.close();
Дополняющая операция чтения внезапно прерывается и сообщает об отсутствующих байтах.
На самом деле я не могу представить, как работает FileStream / _model.writeExternal ()возможность сериализации , так как нужно как-то знать, что новая операция сериализации вот-вот начнется.Если он не знает, он не сможет определить, какие экземпляры объектов оставлены для сериализации .
Таким образом, я представляю, что моя концепция полностью неверна или я пропустил какчтобы инициализировать операцию сериализации.
Пожалуйста, объясните, чего мне не хватает.
Я был бы рад прочитать необработанный ByteArray из общего объекта и записать егов файл.К сожалению, я не нашел метод для извлечения из SharedObject ByteArray определенного свойства, в моем случае mySo.data.model
.Мой вопрос слабо связан с этим: Почему удалить (DictionaryInstance [ключ]);потерпеть неудачу?