AS3: Хранение массива пользовательских классов в локально общем объекте (LSO) - PullRequest
0 голосов
/ 23 сентября 2011

У меня проблемы с хранением массива объектов, каждый из которых является одним и тем же настраиваемым классом в 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 Ответ

1 голос
/ 23 сентября 2011

Как сказал The_asMan, я не думаю, что вы можете создавать собственные классы, только базовые типы данных из AS3.Что вы могли бы сделать в своих пользовательских классах - это установить вспомогательные функции, такие как fromObject (object) и toObject (): Object в классе, чтобы помочь вам конвертировать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...