2013-05-16 1 views
0

Я делаю флеш-игру, где мне нужен способ хранения большого количества данных о мире, как и в данных, которые являются постоянными во всей игре, между всеми игровыми планами. Множество значений (integer, float, string), сгруппированных по иерархии объектов. Дело в том, чтобы упростить редактирование во время разработки (например, обычный текстовый файл или XML) и иметь нулевые служебные данные при чтении данных и минимальные накладные расходы во время запуска.Хранить данные в SWF-файле без необходимости их анализа

Вопрос может быть сведен к следующему: как разместить готовые к использованию объекты ActionScript со всеми полями, уже заполненными в SWF-файле (без необходимости запускать на них функции init)?

Первое, что приходит в голову, это то, что MXML - это способ, но я понятия не имею, как использовать его для выполнения задания - не говоря уже о возможных накладных расходах (я читал MXML медленно). Возможно ли это сделать без необходимости разбирать вещи? Если нет, то что является лучшей альтернативой? XML? JSON? Функции пользовательского формата и парсера?

+0

MXML не предназначен для хранения данных, а о создании экземпляров графических компонентов. Почему бы вам не создать класс, содержащий константы, и отредактировать этот класс? – Kodiak

+0

Возможно ли это сделать в воздухе. –

+0

Вы можете создать собственный класс и сохранить его в общем объекте (или текстовом файле при использовании AIR). Это довольно легко сделать. – BadFeelingAboutThis

ответ

0

Сделать класс, который вы хотите сохранить, реализовать IExternalizable (и не забудьте на самом деле написать необходимые функции;)). Использование registerClassAlias ​​, чтобы сделать класс доступным для AMF-кодирования.

Затем напишите класс ByteArray (с ByteArray.writeObject()) и сжимайте его. После этого напишите ByteArray в файл.

При чтении файла прочитайте содержимое ByteArray, используйте функцию распаковки(), после чего используйте «readObject() как YOURCLASS», чтобы вернуть экземпляр экземпляра.

Вы можете оставить сжатие, если хотите, но в зависимости от сохраненных данных он делает ОГРОМНОЕ различие. В проекте, над которым я сейчас работаю, несжатый файл занимает около 6 МБ, сжатая версия - только 178 КБ.

+0

Кажется, достаточно легко. Завтра будет проверять этот подход. Благодарю. – Xirdus