Actionscript 3 - создание пользовательских компонентов UI - PullRequest
0 голосов
/ 14 января 2011

Я создаю библиотеку элементов пользовательского интерфейса и хочу, чтобы графика была индивидуальной. Сначала я собирался нарисовать все с помощью кода и взять такие свойства, как «background-base-color», «background-градиент-цвет» и т. Д. Я был обеспокоен тем, что пользователю потребуется изменить слишком много свойств и смутиться. В конце концов я уговорил себя использовать внешнюю графику, такую ​​как button_top_left_over.png и т. Д. Теперь я перехожу. Я хочу, чтобы люди могли легко изменять скин, поэтому я могу выбрать, создавать ли им внешние графические библиотеки или обновлять свойства в интерфейсе, который будет писать в XML, например background-base-color, background-base -highlight и др. Кто-нибудь имеет опыт работы с этим, и может предложить совет?

1 Ответ

0 голосов
/ 01 февраля 2011
  1. Вы можете «угадать» градиенты по заданному одному цвету, и он должен подходить в большинстве случаев. Вот алгоритм: ColorUtil.as

  2. Настройка компонентов является распространенной проблемой. Пользователю не нужно углубляться в реализацию, но мы все же хотим максимальной гибкости. Для этого я создал CSS-фреймворк: Jakute Styling Engine . Используя Jakute, вы можете настроить свой компонент, используя состояния.

Вместо объявления тонн свойств для каждого состояния:

Button top_left_over: red.png
Button top_left_down: blue.png
Button top_left_disabled_over: grey.png

С помощью Jakute вы можете указать правила с сохранением состояния:

Button:over top_left: red.png
Button:down top_left: blue.png
Button:disabled:over top_left: blue.png

В этом случае пользователю нужно знать только список состояний кнопок и одно свойство "top_left". Стили можно загрузить из внешней таблицы стилей или напрямую установить для компонента.

Наконец, вот пример, который показывает, как создать настраиваемый компонент с сохранением состояния: Пример состояний . Даже если вы не планируете включать Jakute, вы можете получить представление о том, как другие создают такие компоненты. : -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...