Flex изменяет значения пользовательских скинов во время выполнения - PullRequest
3 голосов
/ 05 марта 2011

Я создал базовую тему для своего приложения Flex.Я хотел бы добавить поддержку дополнительных предопределенных тем.По умолчанию в приложении есть тема, и я хотел бы изменить ее, когда пользователь выбирает тему из выпадающего списка.Это можно сделать, загрузив SWF-файл с помощью styleManager.Тем не менее, все скины имеют жестко закодированные цвета.Итак, чтобы добиться этого, мне нужно было бы продублировать скины и изменить значение цветов.

Есть ли лучший способ сделать это?Могу ли я просто создать обложку, которая будет динамически менять значения цвета в зависимости от выбора пользователя?

Ответы [ 2 ]

3 голосов
/ 05 марта 2011

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

, поэтому, если у вас есть <SolidStoke color="0xff0000" />, вам нужно заменить его на <SolidStroke color="{getStyle('yourCssPropertyName')} />

2 голосов
/ 05 марта 2011

Другой способ сделать это - написать свои скины, чтобы они имели ссылки на свои компоненты хоста (см. [1]).Затем вы расширяете текущие компоненты хоста, чтобы у них были свойства для каждого цвета, который вы хотите указать (например, вместо того, чтобы использовать с borderColor и fillColor в качестве новых свойств).

Честно говоря, ответ Флорианавероятно, лучший путь.

[1] - http://www.adobe.com/devnet/flex/quickstarts/skinning_components.html#host

...