Разработка скинов для Flex 2 с помощью Flash, Photoshop или Fireworks
Перевод: Андрей Горбатов (www.gorbatov.org)
С помощью Flex 2 вы создаете приложения, которые будут выглядеть замечательно, так как по умолчанию используется встроенная тема для компонентов - Halo Aeon. Но Flex дает нам возможность создавать собственный внешний вид компонентов. Если вы хотите сохранить основной вид темы Aeon, но подкорректировать цвета, закругления углов и т.д., вы можете стилизовать компоненты, используя CSS. Если же вы хотите изменить компоненты более радикально, вы должны создать новый набор скинов, который полностью заменить встроенный.
Если вы не знаете, использовать скинование или простую стилизацию, поиграйте с Flex Style Explorer (необходим Flash Player 9) или используйте режим Flex Builder Design, чтобы понять, что вы можете добиться с помощью стилизации. Если вы решите использовать стили, просто скопируйте CSS код из Style Explorer и передайте его разработчику. Но если для вас этого мало, то эта статья для вас.
В статье описывается, как с помощью Flash, Photoshop или Fireworks создавать набор скинов для Flex компонентов. Используя шаблон со скинами (см. ниже), вы можете создавать новые скины, затем экспортировать в файлы с наборами скинов, необходимые для Flex. Вам не надо учить MXML или ActionScript—языки, использующиеся во Flex приложениях—но, зато необходимо знать немного CSS, чтобы разобраться в приложенном файле. Если вы не знаете CSS, не переживайте, я вас познакомлю!
Требования
Необходим один из следующих продуктов:
Не обязательно: Flex Builder 2 (только для Windows, включает SDK) – Для тестирования созданных скинов
Необходимо загрузить один из следующих файлов (в зависимости от используемого приложения)
Необходимые знания
Небольшое знакомство с CSS не повредит.
Графическое скинование и Flex
Flex приложения состоят из индивидуальных компонентов. Существует два вида компонентов – виджеты и контейнеры. Виджеты – это знакомые нам элементы пользовательского интерфейса, такие как Button (кнопка), CheckBox (чекбокс) или ComboBox (выпадающий список). Контейнеры – это компоненты, такие как Accordion, TabNavigator и Panel, содержащие в себе виджеты. (Есть еще контейнеры как HBox и VBox, помогающие расположить в себе элементы, но такие контейнеры, как правило, не имеют визуального представления и поэтому их нельзя скиновать.)
Каждый компонент, который можно скиновать, состоит из элементов для скинования. Для таких элементов, как кнопка, эти элементы соответствуют различным ее состояниям:
- Скин при отпущенном состоянии: кнопка находится в нормальном состоянии, она включена, и указатель мыши не наведен.
- При наведенном состоянии: указатель мыши наведен, кнопка не нажата.
- При нажатом состоянии: кнопка нажата.
- При выключенном состоянии: кнопка выключена.
Другие компоненты имеют более сложный набор скинов. Например, ScrollBar (прокрутка) имеет скины для отпущенного/наведенного/нажатого/выключенного состояния верхней стрелки, тот же набор скинов для нижней стрелки, а также для бегунка и полосы прокрутки.
Несмотря на сложность компонентов, каждый отдельный скин – это просто графический набор. Вы можете создавать элементы скинов как графические файлы или как символы во Flash. Иногда это похоже на создание изменяющихся при наведении изображений в HTML: вы создаете одно GIF или JPEG изображение для нормального состояния, а другое для наведенного. В отличие от HTML, во Flex 2 вы можете скиновать элементы с помощью CSS.
Возможно, все это звучит нудно и сложно: создание кучи маленьких картинок, затем написание CSS кода, чтобы все это связать. Но все еще впереди!
- Мы специально создали файл с шаблонами, которые помогут вам создавать все элементы скинов сразу, без возни с отдельными файлами. Шаблон со скинами показывает, как выглядит встроенный скин Halo Aeon, и вы можете изменять его или заменять своим.
- Также мы создали CSS файл, который собирает все скины вместе.
Перед началом рассмотрим один аспект – масштабирование скинов.
Масштабирование
Возможность масштабирования скинов означает, выглядит ли компонент корректно при изменении его размера. Вы можете создать скин определенного размера для Button, но на самом деле в приложении используются кнопки различного размера. Обычно, они шире или уже, чем вы нарисовали, потому что размер кнопки зависит от количества текста и используемого шрифта. По умолчанию, скин будет растягиваться и сжиматься, чтобы соответствовать размеру кнопки.
При сжатии/растяжении растрового скина, возникает две проблемы. Во-первых, скин может стать пикселизованным или мутным, особенно на границах. Во-вторых, если вы используете закругленные элементы, их формы могут быть искажены при изменении пропорции растра (если вы используете векторные скины, то для вас актуальна только вторая проблема.)
На рисунке пример того, что может быть с растровым скином:

Рисунок 1. Растяжение растрового скина
Как вы заметили, правая граница кнопки выглядит немного тоньше, углы растянуты по горизонтали.
Если вы захотите проделаеть что-то подобное в HTML с помощью таблиц, вам придется нарезать скин на отдельные картинки и масштабировать их отдельно:
- Углы не масштабировать вообще—они будут фиксированы, а значит, сохранится их симметричность.
- Боковые части масштабировать только по вертикали, а верхние и нижние части – только по горизонтали.
- Центральную часть масштабировать в обоих направлениях. (В HTML фон можно задать цветом.)
Этот метод работает, но увеличивает количество изображений, которыми надо управлять. Запомните, что скин для кнопки состоит из четырех частей, значит, вам необходимо управляться с 36 картинками ради одной кнопки!
К счастью, Flex имеет более удобный способ работы с этим - scale-9 grid (сетка масштабирования) (также известная как "9-slice" – 9 частей). Вместо нарезки растра, вы просто указываете Flex, где должны проходить линии отреза, и он автоматически масштабирует необходимые части. Итак, для нашей кнопки, эта сетка будет выглядеть так:

Рисунок 2. Стрелки показывают направления масштабирования
Имейте в виду, что даже при использовании этой сетки, центральная часть будет масштабироваться в обоих направлениях. Если вы создали растровый скин с вертикальным градиентом, то при растяжении кнопки по вертикали, он будет выглядеть не очень хорошо (проблема может быть заметна даже при малейших изменениях). При создании векторных скинов во Flash данная проблема отсутствует.
Я расскажу, как использовать сетку масштабирования позже. Возможно, вам и не придется использовать сетку масштабирования, так как она встроена в наши шаблоны. Также, не все скины должны масштабироваться.
Теперь начнем непосредственно создавать скины. Перейдите к разделу, соответствующему вашей среде разработки: "Использование Flash", " Использование Photoshop" или "Использование Fireworks."
Использование Flash
Перед началом приведу несколько подсказок по использованию Flash файла с шаблоном:
- В общем, вам будет легче, если вы создадите свои скины такого же размера, как и в файле с шаблоном. Если вы сделаете их больше или меньше, вам потребуется корректировать сетку масштабирования.
- CSS файл, который мы предлагаем, подразумевает, что все символы/файлы имеют определенные имена, поэтому вам надо избежать их переименования.
- Для элементов, содержащих текст (Button), вы не сможете изменить его атрибуты (позицию, цвет, размер, шрифт и т.д.) в файле со скином. В разделе "Редактирование стилей" описывается, как задать эти параметры с помощью CSS.
- По умолчанию скины темыHaloAeonполупрозрачные, сквозь них отображается фон контейнера. Вот почему они выглядят сероватыми в нашем файле. Вы можете изменять прозрачность сами.
- Вы должны обратить внимание, что в скинах для всех состояний скроллбара бегунок имеет однопиксельный отступ слева.
- Скины первой и последней кнопок ButtonBar не отличаются от центральной кнопки. Это будет исправлено в следующих версиях Flex.
1. Загрузка файла со скином
Загрузите flex_skins_flash.zip и распакуйте его в папку flex_skins. Если хотите, то можете работать с копией этого файла, чтобы потом создать на основе исходного другие скины.
2. Редактирование элементов скина
Запустите Flash 8 и откройте flex_skins.fla из рабочей папки. Вы увидите все скины на сцене. Каждый элемент соответствует символу в библиотеке.
Чтобы их редактировать:
- Кликните два раза по символу скина, чтобы редактировать на месте. (Вы также можете найти соответствующий элемент в библиотеке.)
- Измените скин или создайте собственный.
- По окончанию редактирования кликните два раза вне элемента или нажмите кнопка «Назад» в левом верхнем углу сцены (над таймлайном).
При редактировании символов обращайте внимание на точку регистрации (знак «+» в левом верхнем углу символа). Flex всегда помещает точку регистрации в левый верхний угол компонента. Поэтому вы должны поместить точку регистрации туда же (кроме бегунка скроллбара, который смещен на один пиксель.)
Если размер вашего скина отличается от изначального, то вам придется редактировать сетку масштабирования.
Этапы редактирования сетки масштабирования:
- Кликните правой кнопкой по части скина и выберите Edit. Вы перейдете к редактированию символа.
- Если вы пунктирных линий нет, то символ не будет масштабироваться никогда.
- Пунктирные линии - это и есть сетка масштабирования. С помощью курсора можно перемещать эти линии и, таким образом, задавать, какие части будут масштабироваться, а какие – нет. Например, если у вас есть закругленные углы, они должны быть расположены в угловых ячейках сетки.
- По окончанию редактирования, вернитесь на основную сцену.
3. Экспорт скина
Экспорт очень прост - выберите File > Publish. При этом автоматически в той же папке создастся файл flex_skins.swf. Этот файл и файл flex_skins.css необходимы нам для скинования Flex приложения.
После публикации swf переходите в раздел "Редактирование стилей".
Использование Photoshop
В Photoshop создаются растровые скины. При этом необходимо обоатить внимание на следующие моменты:
- Как я заметил выше, растровые градиенты масштабируются только в одном направлении. Если вам необходимо создать градиент, который будет масштабироваться в обоих направления, используйте лучше вектор во Flash.
- Photoshop не имеет встроенной поддержки сетки масштабирования, поэтому, если вам надо изменить ее, придется редактировать CSS файл (см. "Редактирование сетки масштабирования для растра").
- Photoshop экспортирует индивидуальные файлы для каждого скина.
Вот несколько подсказок по использованию файла с шаблоном:
- В общем, вам будет легче, если вы создадите свои такого же размера, как и в файле с шаблоном. Если вы сделаете их больше или меньше, вам потребуется скорректировать сетку масштабирования.
- CSS файл, который мы предлагаем, подразумевает, что слои имеют заданные имена, поэтому вам надо избежать их переименования.
- Для элементов, содержащих текст (Button), вы не сможете изменить его атрибуты (позицию, цвет, размер, шрифт и т.д.) в файле со скином. В разделе "Редактирование стилей" описывается, как задать эти параметры с помощью CSS.
- По умолчанию скины темыHaloAeonполупрозрачные, сквозь них отображается фон контейнера. Вот почему они выглядят сероватыми в нашем файле. Вы можете изменять прозрачность сами.
- В разделе " Редактирование стилей" описывается, как задать фон приложения цветом в CSS, чтобы не использовать для этого растровые изображения.
- Вы должны обратить внимание, что в скинах для всех состояний скроллбара бегунок имеет однопиксельный отступ слева.
- Скины первой и последней кнопок ButtonBar не отличаются от центральной кнопки. Это будет исправлено в следующих версиях Flex.
- Такие части скина, как, например, фон виджета Panel (panel control bar background skin), являются полностью прозрачными или имеют прозрачные границы. (В случае с Panel, это сделано для того, чтобы избежать наложения теней на границах Panel.) Если у вас возникли трудности для создания прозрачности для этих элементов в своих скинах, следуйте следующим указаниям:
- Удалите слой этой части скина, затем создайте новый слой с тем же именем, что и слой с прозрачной областью.
- Вручную отредактируйте экспортированное изображение для этой части скина, чтобы включить прозрачные пиксели. После этого удалите соответствующий слой из главного файла шаблона, чтобы ваш собственный файл не удалился при экспорте.
1. Загрузка файла со скином
Загрузите flex_skins_photoshop.zip и распакуйте его в папку flex_skins.
2. Редактирование элементов скина
Запустите Photoshop CS2 и откройте файл flex_skins.psd. Вы увидите все элементы скина, расположенные на отдельных слоях.
Для редактирования необходимо:
- Выберите слой соответствующего элемента скина. Сделать это можно следующими способами:
- Найдите слой на панели Layers. Они организованы в папки с названием, соответствующим имени компонента. Так, папка Button содержит слои Button_upSkin, Button_downSkin и т.д.
- Выберите инструмент Move и в опциях этого инструмента отметьте Auto Select Layer и уберите галочку Auto Select Groups. Теперь вы можете просто нажимать на необходимый элемент, и соответствующий слой будет автоматически выбран.
- Убедитесь, что все остальное пространство за пределами элемента остается прозрачным; Flex рассматривает все непрозрачные области, как части скина.
- Убедитесь, что элементы скина не перекрываются.
3. (Необязательно) Использование нескольких слоев для создания элемента скина
По умолчанию, каждый элемента скина состоит только из одного слоя. Но вы можете добавить другие слои в элемент. При экспорте изображение нарезается на отдельные части, соответствующие элементам скинов. Мы заранее нарезали элементы, чтобы процесс экспорта происходил автоматически, но если вы хотите использовать несколько слоев для элемента, вы можете заменить исходную нарезку слоя пользовательской, но с тем же именем. Вот как это можно сделать:
- В свободном месте создайте слои для элемента скина.
- Выберите инструмент Slice и создайте границы нарезки вокруг вашей части скина. (При этом появятся границы нарезки других элементов).
- Выберите инструмент Slice Select и кликните дважды по исходному элементу скина.
- В окне Slice Options задайте имя элемента скина (например, Button_upSkin) и нажмите Command+C (Mac OS) или Control+C (Windows), чтобы скопировать его. Закройте диалоговое окно.
- Кликните дважды по новой нарезке и вставьте имя нарезки из Шага 4 в качестве имени слоя. Нажмите OK.
- Удалите исходный слой элемента скина.
4. Экспорт скина
- На панели Layers, скройте слой HIDE BEFORE EXPORTING, расположенный в самом низу.
- Выберите File > Save for Web.
- Убедитесь, что выбран формат PNG-24.
- Нажмите Save.
- Выберите папку для экспорта скина.
- Убедитесь, что в Save As стоит *.png.
- Убедитесь, что в Slices - All Slices.
- Нажмите Save.
Photoshop сохранит все элементы скина в отдельных файлах. (Например, Button_upSkin.png).
Пока не закрывайте Photoshop! Если ваши элементы отличаются от исходных элементов скина, то вам придется редактировать сетку масштабирования в CSS файле. Перейдите к разделу "Редактирование сетки масштабирования". А если вам не требуется ее редактировать, перейдите к разделу "Редактирование стилей"
Использование Fireworks
При создании скинов с помощью Fireworks используются растровые изображения вместо векторных. При этом есть несколько моментов, на которые надо обратить внимание:
- Как я заметил выше, растровые градиенты масштабируются только в одном направлении. Если вам необходимо создать градиент, который будет масштабироваться в обоих направления, используйте лучше векторные файлы во Flash.
- Fireworks не имеет встроенной поддержки сетки масштабирования, поэтому, если вам надо изменить сетку для скина, это можно сделать в CSS файле ("Редактирование сетки масштабирования для растра").
- Fireworks выдает индивидуальные файлы для каждого скина.
Вот несколько подсказок по использованию файла с шаблоном:
- В общем, вам будет легче, если вы создадите свои такого же размера, как и в файле с шаблоном. Если вы сделаете их больше или меньше, вам потребуется скорректировать сетку масштабирования.
- CSS файл, который мы предлагаем, подразумевает, что слои имеют заданные имена, поэтому вам надо избежать их переименования.
- Для элементов, содержащих текст (Button), вы не сможете контролировать его атрибуты (позицию, цвет, размер, шрифт и т.д.) в файле со скином. В разделе " Редактирование стилей" описывается, как задать эти параметры с помощью CSS.
- По умолчанию скины темыHaloAeonполупрозрачные, сквозь них отображается фон контейнера. Вот почему они выглядят сероватыми в нашем файле. Вы можете изменять прозрачность сами.
- В разделе "Редактирование стилей" описывается, как задать фон приложения цветом в CSS, чтобы не использовать для этого растровые изображения.
- Вы должны обратить внимание, что в скинах для всех состояний скроллбара бегунок имеет однопиксельный отступ слева.
- Скины первой и последней кнопок ButtonBar не отличаются от центральной кнопки. Это будет исправлено в следующих версиях Flex.
- Такие части скина, как, например, фон виджета Panel (panel control bar background skin), являются полностью прозрачными или имеют прозрачные границы. (В случае с Panel, это сделано для того, чтобы избежать наложения теней на границах Panel.) Для правильного экспорта файла в Fireworks, мы задали этим элементам 1% непрозрачность. Если у вас возникли трудности для создания прозрачности для этих элементов в своих скинах, следуйте следующим указаниям:
- Используйте трюк с 1% непрозрачностью.
- Вручную отредактируйте экспортированное изображение для этой части скина, чтобы включить прозрачные пиксели. После этого удалите соответствующий слой из главного файла шаблона, чтобы ваш собственный файл не удалился при экспорте.
1. Загрузка файла со скином
Загрузите flex_skins_fireworks.zip и распакуйте его в папку flex_skins.
2. Редактирование элементов скина
Запустите Fireworks 8 и откройте flex_skins.png. Вы увидите все элементы скина, расположенные на отдельных слоях.
Для редактирования необходимо:
- Выбрать слой соответствующего элемента скина. Мы предлагаем включить опцию Single Layer Editing из контекстного меню панели Layers, а затем найти необходимый слой. Также вы можете выключить опцию Single Layer Editing и выбирать слои через элементы на сцене.
- Удалите изображение слоя и создайте свое, если необходимо.
Заметьте, что фреймы в файле не используются.
3. Экспорт скина
- В панели Optimize убедитесь, что стоит PNG32.
- Выберите File > Export.
- Выберите папку для экспорта.
- Создайте папку images.
- Из меню Export выберите Layers to Files.
- Убедитесь, что отмечен Trim Images.
- Нажмите Export.
Fireworks сохранит все элементы скина в отдельных файлах. (например, Button_upSkin.png).
Пока не закрывайте Fireworks! Если ваши элементы отличаются от исходных элементов скина, то вам придется редактировать сетку масштабирования в CSS файле. Перейдите к разделу "Редактирование сетки масштабирования". А если вам не требуется ее редактировать, перейдите к разделу "Редактирование стилей"
Редактирование сетки масштабирования для растровых изображений
Как я упомянул выше, текущие версии Photoshop и Fireworks не поддерживают автоматического редактирование сетки масштабирования. Придется делать это вручную
- Откройте файл flex_skins.css в текстовом редакторе. (Вы также можете открыть его с помощью Flex Builder.)
- Для каждого элемента скина создание сетки масштабирования проходит в несколько этапов:
- Поиск блока кода, соответствующего компоненту. Например, для Button вы должны найти:
Button
{
disabledSkin: Embed
(source="images/Button_disabledSkin.png",
scaleGridLeft="4",
scaleGridTop="4",
scaleGridRight="78",
scaleGridBottom="18");
downSkin: Embed
(source="images/Button_downSkin.png",
scaleGridLeft="4",
scaleGridTop="4",
scaleGridRight="78",
scaleGridBottom="18");
overSkin: Embed
(source="images/Button_overSkin.png",
scaleGridLeft="4",
scaleGridTop="4",
scaleGridRight="78",
scaleGridBottom="18");
upSkin: Embed
(source="images/Button_upSkin.png",
scaleGridLeft="4",
scaleGridTop="4",
scaleGridRight="78",
scaleGridBottom="18");
}
- Если вы не видите никаких параметров scaleGrid, значит, эта часть не масштабируется и ее можно пропустить.
- Вернитесь в файл с изображением, прикиньте, где должна проходить сетка масштабирования. Для этого увеличьте необходимую часть скина и проведите гайдлайны.
- Включите линейку и отмеряйте, расстояние от всех линий сетки масштабирования до левой границы скина.
- Переместите значения, подсчитанные на предыдущем этапе, в CSS файл.
- Если для различных элементов одного компонента сетка масштабирования одинакова, ее код можно просто скопировать.
- Сохраните CSS файл.
Редактирование стилей
После создания скинов необходимо добавить некоторые стили в CSS файл:
- Вы можете изменить атрибуты текста: цвет, шрифт, размер.
- Некоторые цвета, такие как цвет выбранного элемента в списке, устанавливаются в CSS.
- Можно задать фон приложения, если вы использовали Photoshop или Fireworks. .
- Если вы создали скин для компонента Panel, вам необходимо определить местоположение ее содержимого.
- Возможно, вы захотите создать несколько скинов для одного компонента.
Если вы знаете, как CSS работает в HTML, вам будет легко произвести эти настройки.
Текстовые стили
Сначала определитесь с основным шрифтом для большинства виджетов. Предположим, вы хотите использовать голубоватый цвет и 9-px Verdana. Задать это вы можете в CSS файле в правиле global:
global
{
color: #333399;
fontFamily: Verdana;
fontSize: 9px;
}
Заметка: Опытные CSS-ники заметят, что используется fontFamily вместо font-family. Flex понимает оба синтаксиса.
Если вы хотите применять свои стили для различных компонентов, просто добавьте их в соответствующие CSS правила. Например, если вы хотите, чтобы на кнопках был жирный шрифт, просто добавьте между фигурными скобками fontWeight: bold для Button.
Вы также можете задать цвет текста при наведении и при нажатии: textRollOverColor и textSelectionColor.
Задание цветов компонентов
Многим компонентам можно задать цвета, отображающиеся при выборе, наведении указателя мыши, попадании в фокус. Через скинование эти цвета задать нельзя.
А через стили можно:
- themeColor: Этот цвет фокуса. Цвет при наведении и выборе для различных компонентов (например, List) автоматически становится светлее themeColor. Вы можете задать этот стиль в global и он будет применяться для всех компонентов.
- borderColor: Это цвет границы вокруг компонентов, таких как List. Вероятно, вы захотите задать этот для конкретного компонента. Как это сделать, я рассажу ниже.
- backgroundColor: Это цвет фона таких контейнеров как HBox и VBox и виджетов List.
Если вы хотите применять стили borderColor или backgroundColor к конкретным компонентам, просто добавьте соответствующее правило в CSS файл:
List
{
borderColor: #333366;
backgroundColor: #CCCCFF;
}
Задание фона приложения
Гораздо легче задать цвет фона приложения через CSS, нежели использовать растровый скин для фона как в Photoshop или в Fireworks. Для этого необходимо просто удалить атрибут backgroundImage из правила для Application и заменить его следующим:
- Для задание просто цвета: backgroundColor:
Application {
backgroundColor: #CCCCFF;
}
- Для задания вертикального градиента: backgroundGradientColors. Первый цвет – верхний цвет градиента, второй - нижний:
Application
{
backgroundGradientColors: [#CCCCFF, #666699];
}
Задание области контента для Panel
Panel отличается от других компонентов, тем, что он может содержать другие компоненты. При создании скина для Panel с более тонкими границами, чем имеют содержащиеся в ней компоненты, вы можете заметить наложение. Исправить это можно задав толщину границ всех сторон Panel в CSS файле. Также можно задать высоту заголовка.
Panel
{
borderThicknessTop: 5;
borderThicknessLeft: 5;
borderThicknessBottom: 5;
borderThicknessRight: 5;
headerHeight: 20;
}
В CSS файлах, которые идут в нашем архиве, данные стили уже заданы.
Использование Flex Style Explorer
Чтобы поэкспериментировать с другими стилями, воспользуйтесь Flex Style Explorer.
Создание нескольких скинов для одного компонента
Для многих компонентов необходим только один скин. А для некоторых необходимо несколько скинов. Например, необходимо сделать все кнопки одинаковыми, а одну более яркую.
Вот как это сделать:
- Определитесь с именем нового скина. Например, glowButton. (По соглашению, собственные названия скинов называются с прописной буквы.)
- Заметьте, что элементы скина называются, например, для кнопки: Button_upSkin, Button_overSkin, Button_downSkin, и Button_disabledSkin.
- Поэтому при создании собственных частей скина, вам необходимо назвать их соответстсвенно glowButton_upSkin, glowButton_overSkin, glowButton_downSkin, и glowButton_disabledSkin.
- Во Flash вы можете создать новые символы в существующем шаблоне, а затем заново экспортировать файл. Убедитесь, что вы задали линкаж (linkage) для этих символов, соответствующий их названию, и оставили их экземпляры на сцене — иначе они не будут экспортироваться.
- В Photoshop и Fireworks, вы можете добавить новые слои и экспортировать их тем же способом, как написано в соответствующем разделе. Или вы можете просто создать отдельные файлы, назвать их glowButton_upSkin.png, glowButton_overSkin.png, и скопировать в папку images.
- Создать новое правило в flex_skins.css.
.glowButton
{
upSkin: Embed(source="flex_skins.swf", symbol="glowButton_upSkin");
overSkin: Embed(source="flex_skins.swf", symbol="glowButton_overSkin");
downSkin: Embed(source="flex_skins.swf", symbol="glowButton_downSkin");
disabledSkin: Embed(source="flex_skins.swf", symbol="glowButton_disabledSkin");
}
- Для Photoshop или Fireworks:
.glowButton
{
upSkin: Embed(source="images/glowButton_upSkin.png");
overSkin: Embed(source="images/glowButton_overSkin.png");
downSkin: Embed(source="images/glowButton_downSkin.png");
disabledSkin: Embed(source="images/glowButton_disabledSkin.png");
}
- Если вам необходимо задать сетку масштабирования, обратитесь к соответствующей главе.
- Чтобы применить стиль к компоненту, используейте атрибут styleName:
<mx:Button styleName="glowButton" label="My Glowing Button"/>
Обратите внимание, что Flex использует атрибут styleName вместо class в HTML.
Тестирование скинов и стилей
На этом этапе вы можете передать ваши скины и CSS файл Flex разработчику. Если у вас есть Adobe Flex Builder 2, вы можете протестировать их сами.
Заметка: Эти инструкция применимы к standalone Flex Builder, а не к плагинам к Eclipse.
- Запустите Flex Builder 2.
- Выберите File > New > Flex Project.
- Убедитесь, что выбрано Basic нажмите Next.
- Введите название проекта.
- В Project Contents уберите галочку Use Default Location.
- Нажмите Browse и перейдите в папку со скинами. В папке должен быть файл FlexSkinTest.mxml.
- Нажмите Next.
- Нажмите Browse для Main application file, выберите FlexSkinTest.mxml и нажмите OK.
- Нажмите Finish.
- Выберите Run > Run FlexSkinTest , или нажмите зеленую кнопку Run на панели.
В окне браузера вы увидите все ваши компоненты. Протестируйте компоненты и убедитесь, что все выглядит корректно.
Чтобы протестировать внешний вид компонентов с различными параметрами, используйте режим design и измените размеры компонента или параметры его шрифта:
- В виде Navigator слева, нажмите дважды на FlexSkinTest.mxml.
- Нажмите кнопку Design на панели вверху документа.
- Найдите необходимый элемент и выберите его.
- Измените размер элемента.
- Если вы хотите изменить шрифт, используйте вид Properties, расположенный в правом нижнем углу.
- Запустите приложение.
Не все скины корректно отображается в режиме design. Например, растровые скины выглядят растянутыми, а Panel вообще не отображается. Не паникуйте, а просто запустите приложение и убедитесь, что все в порядке в браузере.
Что дальше?
Чтобы использовать скин, скопируйте CSS файл и файлы со скином в папку приложения и в файл приложения добавьте строку:
<mx:Style source="flex_skins.css"/>
Вот и все!
Благодарности
Kim Pimmel, Ryan Tandy, Rob Adams, Glenn Ruehle.