Я знаю, что хранить строки и числа с SharedObject очень просто, и я также знаком с такими вещами:
var sharedObject:SharedObject = SharedObject.getLocal("userData");
var obj:Object = new Object();
obj.prop = "value";
sharedObject.data.userobj= obj;
sharedObject.flush();
Однако я пытаюсь сохранить объект класса GameStage - класса, который я определил для хранения данных об этапах в моей игре. Этот тип вещи, кажется, не работает:
var sharedObject:SharedObject = SharedObject.getLocal("userData");
var stageOne:GameStage = new GameStage();
stageOne.highScore = 99999;
sharedObject.data.stageOne = stageOne;
sharedObject.flush();
Этот код не выдает ошибку, но когда я пытаюсь получить данные этапа позже, например, так:
stageOne = sharedObject.data.stageOne;
Я получаю эту ошибку:
TypeError: Error #1034: Type Coercion failed: cannot convert Object@3d220629 to GameStage.
Я предполагаю, что мой вопрос: какие именно типы данных могут храниться в SharedObject? Везде, где я смотрел онлайн, отвечал на этот вопрос «всем, что можно использовать во Flash», что не очень наглядно - очевидно, мой класс GameStage работает и во Flash. Есть ли что-то о получении данных из SharedObject, о котором я не знаю?
Я прогнозирую, что я не смогу хранить мои сценические данные таким образом. Если это так, может ли кто-нибудь предложить альтернативный способ сохранения данных?