Руководство EasyLottie
Lottie JSON против Lottie ZIP: в чем разница?
Четкое объяснение того, когда достаточно простого JSON, а когда пакет ZIP предотвращает потерю ресурсов.


Краткая версия
Файл Lottie JSON содержит инструкции по анимации: слои, формы, время, цвета, преобразования и метаданные. Если анимация полностью векторная или содержит все необходимые ресурсы, одного JSON может быть достаточно.
Lottie ZIP — это пакет. Обычно он содержит JSON плюс ресурсы изображений, на которые ссылается этот JSON. ZIP безопаснее, если анимация включает снимки экрана, логотипы, текстуры, аватары или другие растровые файлы.
Почему файлы JSON иногда ломаются
JSON может ссылаться на путь к изображению, например images/img_0.png. Если это изображение не включено в JSON, средство просмотра или среда выполнения приложения не смогут его отобразить. Анимация может воспроизводиться с пустыми областями, отсутствующими логотипами или неработающими сценами.
Вот почему загрузки с торговой площадки и передача дизайнерам часто поступают в виде файлов ZIP. Пакет хранит JSON и папку ресурсов вместе, что делает предварительный просмотр и редактирование более надежными.
Какой формат следует использовать?
Используйте JSON, если анимация простая, векторная и уже корректно воспроизводится в целевой среде выполнения. Используйте ZIP, когда речь идет об изображениях, когда вам нужно заменить ресурсы или когда вы не уверены, зависит ли JSON от внешних файлов.
Для редактирования зачастую лучшим форматом передачи является ZIP. Image replace может обнаруживать и обновлять ресурсы внутри пакета, а затем экспортировать полный набор файлов, который разработчики могут немедленно протестировать.
Быстрый контрольный список
- Используйте JSON для простой векторной анимации.
- Используйте ZIP для анимации с большим количеством изображений.
- Предварительный просмотр перед встраиванием.
- Сохраняйте пути к активам нетронутыми.
- Экспортируйте ZIP при замене изображений.
Воспроизведите рабочий процесс
Используйте эти локальные образцы файлов, чтобы повторить проверки, описанные в этом руководстве. Просмотрите файл перед использованием его в рабочем проекте.
Результат тестирования: автономный JSON по сравнению с пакетом активов
Загрузки счетчика и импульса представляют собой небольшие автономные примеры JSON. Каждый из них имеет один слой и пустой список ресурсов, поэтому вся анимация хранится в одном файле. Демо-версия компрессора демонстрирует контраст: она объявляет три актива, а это означает, что записи активов должны быть проверены, прежде чем предполагать, что достаточно копирования только JSON.
| Файл | Измеренная структура | Упаковочное решение |
|---|---|---|
| spinner.json | Байты 1,527, уровень 1, активы 0 | Достаточно одного JSON. |
| pulse.json | 1,357 байты, слой 1, активы 0 | Достаточно одного JSON. |
| compressor-demo.json | Байты 1,713, слои 2, записи активов 3 | Проверяйте типы и пути активов перед передачей |
| dotLottie | Стандартизированный контейнер на базе ZIP с манифестом. | Используйте, если целевой проигрыватель поддерживает спецификацию dotLottie. |
| Универсальный ZIP | Определенная проектом папка, содержащая JSON и ресурсы. | Проверьте внутренние пути с принимающей средой выполнения. |
Расширение имени файла само по себе не говорит вам, является ли анимация автономной. Проверьте массив ресурсов и протестируйте файл за пределами папки, в которой он был создан.
Общий файл ZIP и файл `.lottie` не являются взаимозаменяемыми именами для одного и того же контракта. dotLottie определяет структуру манифеста и контейнера, тогда как общий ZIP может использовать любой макет папок, ожидаемый конкретным инструментом.
Знайте пределы
- Не каждый игрок принимает стандартную загрузку ZIP, и не каждый игрок поддерживает контейнер dotLottie. Прежде чем выбирать формат передачи обслуживания, подтвердите целевую среду выполнения.
- Массив ресурсов может содержать как предварительные композиции, так и записи растровых изображений. Непустой массив не доказывает автоматически отсутствие внешних файлов изображений.
- Переименование папок внутри ZIP может привести к нарушению относительных путей, даже если все необходимые файлы все еще присутствуют.
Если ваш результат отличается
- 1.Откройте JSON и проверьте каждую запись актива на наличие имени файла, относительного пути, встроенных данных URL или данных вложенного слоя.
- 2.Извлеките пакет, не меняя структуру его папок, затем убедитесь, что все изображения, на которые есть ссылки, существуют по ожидаемому относительному пути.
- 3.Проверьте только JSON и весь пакет. Разница между этими результатами указывает на проблему разрешения активов.
- 4.Используйте dotLottie только в том случае, если документы назначения поддерживают его манифест и спецификацию контейнера.
Часто задаваемые вопросы
Является ли Lottie ZIP официальным форматом?
Упаковка ZIP — это распространенный практический способ хранения Lottie JSON и связанных с ним активов вместе.
Могу ли я предварительно просмотреть JSON и ZIP?
Да. EasyLottie Preview поддерживает оба варианта.
Почему отсутствуют графические ресурсы?
JSON, вероятно, ссылается на внешние изображения, которые не были включены в файл.
Какой формат лучше всего подходит для разработчиков?
Лучший формат — тот, который сохраняет все необходимые ресурсы. Для анимации на основе изображений обычно безопаснее ZIP.
Первоисточники
Техническое поведение было проверено на соответствие исходной документации по среде выполнения или формату, приведенной ниже.