Создание собственного формата файла для Adobe Air - PullRequest
1 голос
/ 16 февраля 2010

Я только начинаю свой первый проект Adobe Air (по профессии я чистый разработчик для AS3). Я планирую построить редактор изображений, который поддерживает слои. Мне интересно, как лучше всего сохранить весь проект, включая данные слоев (изображения), на жесткий диск пользователя.

Мне интересно, есть ли плюсы / минусы в создании пользовательского формата файла для моего приложения. Идея в том, что я смогу сохранить весь проект в одном файле. Это будет сделано путем записи метаданных в заголовок файла, таких как размеры изображения, имена слоев, смещения данных слоев и т. Д. *

Я стараюсь помнить о проблемах, которые могут возникнуть, таких как поддержание обратной совместимости после добавления новых функций / мета проектов и т. Д.

Наверное, я спрашиваю, есть ли у людей какие-либо советы или опыт по созданию собственного формата файлов для Adobe Air, и есть ли какие-либо другие готовые решения для сохранения сложных данных для пользователей. жесткий диск.

Спасибо.

Ответы [ 2 ]

5 голосов
/ 16 февраля 2010

Возможно, вы могли бы сделать собственный двоичный формат и записать ByteArray на диск. Это должно быть быстро и компактно. Я никогда не писал пользовательский двоичный формат, но я уверен, что кто-то здесь может рассказать вам о лучших практиках в этом. Вы можете сохранить строковое описание расположения вашего слоя в ByteArray, используя writeUTF или writeUTFBytes , и вы можете использовать getPixels () BitmapData *, поскольку он возвращает ByteArray. 1009 *

Идея «обходного пути», которая приходит в голову, заключается в создании архива с использованием as3 zip пакета , который будет содержать ваши слои в формате PNG / JPEG (возможно, с использованием кодировщиков as3corelib ) и XML-файл, описывающий ваш файл (какие слои должны находиться, куда, с каким сочетанием / прозрачность / и т. д.). Это может быть немного длинным, хотя.

НТН, George

0 голосов
/ 03 мая 2011

Я написал пару пользовательских двоичных форматов для своих проектов. Сначала вы захотите создать заголовок для вашего формата с метаданными о вашем файле. Оформить заказ Структура файла MP3 . Это может помочь вам понять, как организовать ваш файл. Я думаю, что ваши слои будут соответствовать MP3-кадрам на диаграмме, так как я вижу, что эта часть данных повторяется.

Flex предоставляет возможность пометить класс как [RemoteObject] и записать его на диск в сериализованной форме. Но я обнаружил, что это слишком много. Я создал ByteArray и записал данные заголовка по отдельности, и с помощью этого подхода я смог сохранить почти 200 байтов.

Убедитесь, что вы прочитали документацию по ByteArray и его возможностям.

А что касается последней части, я не знаю ни одного готового решения для сохранения сложных данных на жесткий диск. Я могу предоставить вам более конкретную информацию, если вы хотите.

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