Автор:
Tericonio
Описание
Многие игры ещё разрабатываются в среде Adobe Flash или схожей среде для создания игр на основе SWF, и иногда простое внедрение символов кириллицы может привести к непредсказуемым результатам при редактировании в разных программах, если не внести шрифт внедрённый файл в SWF с нуля.
Программы и Шрифт
Для работы нам понадобится: Adobe Flash Professional CS6, JPEXS Free Flash Decompiler, и шрифт с кириллицей и латиницей
Работа в Adobe Flash Professional CS6
Шрифт: Для начала установим шрифт непосредственно в систему (Открываем шрифт для просмотра в WIndows, и нажимаем Установить)
Первый вариант:
Adobe Flash Professional CS6: Файл → Создать → Шаблоны → Образцы файлов → Меню → Нажимаем ОК
В нижней левой части выбираем папку Menu Assets и нажимаем в верхней части иконку T (текст), а в правой стороне Свойства → СИМВОЛ → Стиль: → Внедрить
Переходим во вкладку Параметры и в поле ниже строки Имя: Пишем сокращённое имя нашего шрифта к примеру Font
Семейство: Выбираем наш установленный шрифт
Второй вариант:
Adobe Flash Professional CS6: Файл → Создать → Action Script 3 → Нажимаем ОК
Нажимаем в верхней части иконку T (текст), а в правой стороне Свойства → СИМВОЛ → Стиль: → Внедрить
Переходим во вкладку Параметры и в поле ниже строки Имя: Пишем сокращённое имя нашего шрифта к примеру Font
Семейство: Выбираем наш установленный шрифт
Ниже строки Включить также следующие символы вводим
Выбираем Классический (DF3)
Переходим во вкладку ActionScript и ставим галочки на: Экспорт для ActionScript и Экспортировать в кадр 1
В поле Класс: пишем тоже Font и нажимаем ОК
Теперь Файл → Экспорт → Экспортировать ролик… — И сохраняем к примеру как 1.swf на рабочем столе и закрываем программу, отказавшись от сохранения.
Работа в JPEXS Free Flash Decompiler
Открываем программу, теперь нажимаем на Open → Переходим в Desktop (Рабочий стол), поскольку мы сохранили на рабочем столе наш файл 1.swf
Выбираем файл 1.swf и нажимаем Open, теперь открываем файл *.SWF в который нам необходимо внедрить шрифт — таким же самым образом
Переходим в левую часть и выбираем файл 1.swf переходим в fonts, раскрываем папку шрифтов и находим наш созданный шрифт
Шрифт будет иметь название DefineFont3 (child: 6, fn: Имя шрифта) — За место Имя шрифта — Имя вашего шрифта
Раскрываем шрифт и видим следующее: Наш шрифт а ниже DefineFontAlignZones и DefineFontName
Выделяем через Shift и левой кнопкой мышки эти три имени: Сам шрифт и DefineFontAlignZones и DefineFontName
Правой кнопкой мыши на выделенном: Copy tag to и переносим в наш другой файл *.SWF
В появившемся окне раскрываем Frame 1 и находим шрифт который нам необходимо заменить
Нажимаем на него, чтобы в превью видно было сам предыдущий шрифт и нажимаем ОК
Переходим в файл куда внедрили наш шрифт и раскрываем дерево файлов таким же образом
На предыдущем шрифте нажимаем правой кнопкой мыши и в появившемся выпадающем меню, выбираем Raw edit
В правой части находим fontName: String = Имя шрифта, — нажимаем на это имя и копируем его через Ctrl + C
Теперь раскрываем это шрифт и выделяем также как и раньше при копировании, и нажимаем правой кнопкой мыши и выбираем Remove (DEL), но перед этим запоминаем его CHID и соглашаемся на удаление
Теперь переходим в ставленый шрифт и также через Raw edit — в строке fontID вводим ID предыдущего шрифта, а в колонке fontName имя предыдущего шрифта и нажимаем Save
Сейчас переходим в папку others и находим выделенное красным и редактируем fontID у DefineFontAlignZones и DefineFontName как и у шрифта, и также сохраняем
А теперь находим что у нас могут быть выделенные папки кроме папки с шрифтам и нажимаем на эти папки и раскрываем их как и шрифт и на каждом выделенном объекте (можно выделить часть файлов через Shift + левая кнопка мыши), нажимаем правой кнопкой мыши и в выпадающем меню нажимаем на Undo, тем самым мы откатываем изменения в эти файлы (чаще изменения бывают в texts: DefineEditText и DefineText) — поскольку лучше всего вносить до изменения текста, спрайтов, шейпов, кнопок и изменений в скриптах
И последнее сохраняем через Save as… и вводим имя файла для сохранения, и закрываем программу и переносим файл