AS3: Хранение массива пользовательских классов в локально общем объекте (LSO)
У меня возникли проблемы с сохранением массива объектов, каждый из которых является одним и тем же пользовательским классом в LSO, и последующей перезагрузкой этого массива из LSO без потери типа класса объектов в списке.
Я знаю, как сохранить один объект пользовательского класса и загрузить его с правильным типом класса, используя registerClassAlias()
функция, но я не могу применить это к массивам объектов.
Я пытаюсь сохранить массив с именем messageList. Каждый элемент представляет собой пользовательский класс GameMessage со свойством gameLevel. После загрузки LSO я пытаюсь сделать что-то вроде
trace("0th message is from level " + GameMessage(messageList[0]).gameLevel);
И я получаю исключение, как это:
Ошибка типа: ошибка № 1034: сбой приведения типа: невозможно преобразовать объект @90fdfa1 в GameMessage.
Я зарегистрировал класс GameMessage, используя
registerClassAlias("GameMessage", GameMessage);
и все работает, если вместо списка сообщений я пытаюсь сохранить / загрузить одно сообщение.
Любая помощь о том, как решить эту проблему, будет принята с благодарностью!
1 ответ
Как сказал The_asMan, я не думаю, что вы можете создавать собственные классы, только базовые типы данных из AS3. Что вы могли бы сделать в своих пользовательских классах - это установить вспомогательные функции, такие как fromObject(object) и toObject():Object в классе, чтобы помочь вам преобразовать их.