В данной статье рассматриваются многоступенчатая конвертация, а также «нестандартный» способ конвертации на примере проектов, написанных на языке Scratch, в exe файл.
Ключевые слова: проект, конвертация, Scratch.
Развитие технологий, увеличение количества пользователей персональных компьютеров и различных платформ привело к огромному многообразию программ и к такому же разнообразию форматов выходных данных, что в итоге привело к возникновению проблемы конвертации данных.
Конвертация данных — это преобразование одного формата данных в другой с сохранением основного содержания информации.
Из разработанных методов преобразования данных наиболее часто используется прямой, основанный на обновлении программы до более поздней версии, и альтернативный, требующий использование специальной конвертирующей программы. При использовании альтернативного метода в некоторых случаях могут понадобиться несколько промежуточных стадий для перехода одного формата к другому.
Одной из главных проблем конвертации является потеря или искажение данных. Чаще всего это происходит из-за разных возможностей программ. При сравнении форматов «plain text» и «OpenDocument Text» становится очевидным, что у второго формата намного больше возможностей форматирования. Конвертация из простого в более сложный формат, в большинстве своем, пройдет без потери данных. Но преобразование в обратную сторону приведет к потери большей части форматирования, например, в случае с текстовыми типами данных.
Цель данной статьи — рассмотреть применение метода многоступенчатой конвертации на примере форматов sb3 и exe.
Exe — это стандартный формат для открытия программ в операционной системе Windows. Sb3 же специализированный формат файла, используемый для хранения проектов написанных на языке Scratch.
Scratch — это блочный язык программирования для создания игр и анимации, который активно используется детьми и подростками (8–16 лет). Данный язык программирования из-за легкости понимания его основ и широких возможностей имеет популярность и у взрослой аудитории (Рис. 1).
Рис. 1. Вид в программе Scratch 2.0
Scratch последней версии 3.0 сохраняет проекты в формате sb3. Но можно создавать проекты и в старой версии 2.0, тогда и формат получится sb2, что поможет упростить конвертацию.
Для достижения поставленной цели были сопоставлены версии 2.0 и 3.0 в части функциональных возможностей конвертации на основе технической документации, размещенной на сайте разработчика программы Scratch, рассмотрены предложения пользователей по конвертации на англоязычных форумах, а также протестированы различные способы конвертации.
Метод многоступенчатой конвертации состоит в переводе sb3 формата в sb2, затем в SWF, а затем в exe. Приведем пример реализации данного метода:
– чтобы перевести sb3 в sb2 может быть использовано приложение sb3tosb2 (функционирует только при установленном Python3). В программе необходимо выбрать sb3 файл с проектом, а затем папку, в которую сохранится уже готовый sb2 файл (при работе с версией Scratch 2.0 данный шаг следует пропустить);
– для конвертации sb2 в SWF может быть использован сайт «junebeetle», который удобен гибкой настройкой конвертора: от отображения стандартного зеленого флажка, до выставления пользовательского разрешения;
– для конвертации swf в exe. наиболее удобный из найденных оказался swf-to-exe.com.
Тестирование данного метода выявило потерю такой информации, как музыка в формате MP3 и некоторых переменных. Кроме того, происходит искажение информации: шрифты становятся стандартными и «съезжают» так же, как и некоторые спрайты. Если скорректировать проект с учетом последствий конвертации, то получится exe с работающим проектом. Данный метод не подходит для проектов с большим количеством спрайтов и костюмов (их положение не соответствует начальной расстановке и требует большого количества времени на корректировку), а также при необходимости сохранения оригинальной стилистики шрифта (все используемые шрифты приводятся к стандартному виду).
Негативные последствия многоступенчатой конвертации могут быть преодолены через добавление преобразования в html и использовании специальной программы, в которую «встраивается» наш проект. При тестировании метода для перевода sb3 в html использовался проект HTMLifier на сайте github. Также понадобилось приложение nwjs. Файл html был добавлен в папку с файлами программы nw.exe, и, в файле package.json из той же папки, был скопирован текст:
{
«name”: «Name”,
«main”: «project.html”,
«icons”: {"16": «icon.png”}
}
Первая строка — название программы, вторая — название сконвертированного html файла, третья — имя изображения для иконки. Для запуска нажимаем на nw.exe и откроется проект.
Описанный вариант конвертации занимает меньше времени, но, чтобы проект работал, необходимо много посторонних файлов, хранящихся в папке программы.
Таким образом, на данный момент существует множество узконаправленных и редких форматов данных, конвертация которых является трудоемким и времязатратным процессом. Потребность пользователей в преобразовании специализированных в стандартные форматы ставит перед разработчиками новую задачу по упрощении процесса конвертации.
Литература:
- http://scratch.by/news/project_news/scratch_3_0_preview_questions_and_answers/
- https://en.scratch-wiki.info/wiki/Porting_Scratch_Projects
- https://github.com/RexScratch/sb3tosb2