Полуавтоматическое Создание Форм Для Adobe Flash На Основе Файлов Adobe Photoshop.

Как знают многие флешеры (и не только другие), создать простую форму на основе png-ресурсов в принципе несложно, но что делать, если эти формы постоянно меняются, корректируются и множатся, как грибы после дождя? Что делать? И это то, что мы сделаем.

Мы превратим psd-файл в интерактивную форму, с которой вы сможете работать очень прозрачно и не думать о координатах и других дизайнерских вещах.



Используемые программы

  • Adobe Photoshop CS5.5
  • Adobe Flash Профессиональный CS5.5
  • питон 2.6-2.7
  • FlashDevelop 4.0.1 RTM


Идея

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

  • Программист получает этот файл, пропускает его через парсер и в конечном итоге получает файлы .

    XML и .

    SWC.

  • Подключает к проекту .

    SWC и .

    XML (если это не первый раз, то к проекту уже все подключено)



Подробнее



Фотошоп.

Правила именования и структурирования слоев.

Вообще говоря, при анализе .

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

Мы сделаем такую форму:

Полуавтоматическое создание форм для Adobe Flash на основе файлов Adobe Photoshop.



Полуавтоматическое создание форм для Adobe Flash на основе файлов Adobe Photoshop.

Начнем сверху:

  • text_custom_cursor — это слой, в котором находится маркер для текста.

    В дальнейшем по этому имени мы получим доступ к маркеру и на основе его геометрических характеристик создадим текстовое поле.

  • text_sound_on_off - аналогично первому слою.

примечание , сами маркеры загружать не нужно, так как данные о них есть в формате .

XML, хотя я их сейчас выгружаю.

  • radio_set_cursor — папка (набор), которая в недрах AS3 превратится в радиокнопку далее идут слои с «говорящими» состояниями радио_вкл радио_выкл.

    радио_фон

  • radio_set_sound радио_вкл радио_выкл.

    радио_фон

  • button_set_1 — папка (набор), которая в недрах AS3 превратится в Button далее идут слои с «говорящими» состояниями b_1_up b_1_over b_1_вниз b_1_fon
  • button_set_2 b_1_up b_1_over b_1_вниз b_1_fon
примечание , состояния для двух радиокнопок и, соответственно, Button имеют одно и то же имя, но сами наборы разные.

Это значит, что при загрузке мы получим 2 радиоКнопки и, соответственно, Кнопки, в XML-виде, но ресурсы для них будут в единственном экземпляре, что немаловажно! Все остальное можно называть как угодно, но лучше это как-то организовать, поэтому я называю их «декор_+как угодно» В целом все по правилам.



Питон.

Загрузка в форматы .

XML и .

PNG

Почему питон? Потому что я делаю на нем все, что можно автоматизировать.

Gimp + python я не использовал, потому что Gimp не поддерживает папки (набор), а в них, так сказать, вся суть.

Я не стал использовать javaScript по своим, достаточно труднообоснованным причинам (но можно сказать из-за скорости).

В конце концов я остановился на технологии COM. Подробности в источниках.

В двух словах получилось, что за счет того, что GUI Photoshop обновляется при запуске его скриптов, а через COM можно просто скрыть Photoshop и тогда скорость заметно возрастает.

JSFL. Упаковка всего этого в .

SWC

С помощью простого JSFL-скрипта я упаковываю все .

PNG в удобный для нас .

SWC Присоединяем библиотеку к проекту, в свойствах библиотеки обязательно ставим «Includet Library».



SWF. Загрузка формы
Для отображения формы используются три класса
  1. Form.as — Фактическая форма
  2. InteractiveContainer.as — интерактивный контейнер, который анализирует имя слоя и создает соответствующий элемент, интерактивный или нет.
  3. ResourceLoaderFromForm.as — графический загрузчик из библиотеки или, как вариант, по URL


ЛЕТУЧАЯ МЫШЬ.

Мы автоматизируем

Создаем файл, например, psd_parser_habr.bat мы пишем в нем

@echo off cls python D:\main\FlashDevelop\habraForm\python\psd_parser.py %1 D:\main\FlashDevelop\habraForm\python\export_in_swc.jsfl

Мы положили его в безопасное место.

Создаем еще одну ссылку «Открыть с помощью» для файлов .

psd и указываем psd_parser_habr.bat в качестве программы открытия.

Теперь вы можете «открыть» любой файл .

PSD с помощью этого пакетного файла и получить из него ресурсы в форме .

SWC и .

XML. Никакого кода я здесь не приводил, в связи с тем, что он есть в проекте, есть несколько нюансов, но они тоже описаны в проекте.

Тем, кому лень писать самому, можно взять код из исходников, другим достаточно идеи.

На эту тему можно говорить еще очень много, критиковать код и подход, «централизовать» настройки всего этого зоопарка и так далее и тому подобное.

Вероятно, так и будет, но цель этой заметки — лишь показать, как минимальными средствами можно получить вполне хороший результат. Вот и все.

Результат.

Полуавтоматическое создание форм для Adobe Flash на основе файлов Adobe Photoshop.

Скачать Проект FD4 с Google Docs УПД.

Чтобы избежать нюансов, я изменил арт. Теги: #flash #python #photoshop #ActionScript #Adobe Flash

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.