Определение скинов Flex 4 с помощью CSS - PullRequest
4 голосов
/ 14 апреля 2011

Я пытаюсь определить свои Flex 4 скины с помощью CSS, но мой пользовательский скин не будет отображаться.Вот что я делаю:

В моем приложении я импортирую свой CSS и определяю styleName в моей кнопке:

        <fx:Style source="styles.css"/>
        <s:Button label="Button" styleName="circle"/>

Вот мой CSS:

@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";

s|Button.circle
{
    skinClass: ClassReference("skins.buttons.CircleButton");
}

Насколько я понимаю, моя кнопка должна быть снабжена ее skinClass через CSS, но она не работает.Если я определю skinClass напрямую, как показано ниже, он будет работать нормально:

<s:Button label="Button" skinClass="skins.buttons.CircleButton"/>

Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2011

Сначала убедитесь, что ваш CSS-файл находится в корневом приложении.Во-вторых, я бы попытался сделать CSS без селектора типа, поэтому вместо s|Button.circle просто сделайте .circle.

РЕДАКТИРОВАТЬ

Вы также можете попробовать поместить стиль в стильтег в том же контейнере, что и ваша кнопка, чтобы увидеть, если это работает.Вы уверены, что ваше приложение может найти ваш style.css?Показ большего количества кода может помочь ситуации.

0 голосов
/ 14 апреля 2011

В соответствии с официальной документацией по Flex CSS :

Селектор класса: Селектор класса CSS соответствует компонентам, которые удовлетворяют условию класса.Синтаксис CSS для объявления селектора класса состоит в том, чтобы поставить условие перед точкой.Вы можете объявить селектор класса как условие селектора типа или универсально для любого типа, который удовлетворяет условию класса.

.header { background-color: #CCCCCC; }

HBox.footer { background-color: #999999; }

Примечание. В Flex выполняется условие классаиспользуя атрибут styleName для компонента.Например, у вас может быть два класса HBox: «верхний колонтитул» и «нижний колонтитул».Выше, первый селектор применяется к любому компоненту с styleName = "header";второй селектор должен применяться только к компонентам HBox с styleName = "footer" (то, что на самом деле нужно исправить и применить в Gumbo, так как современные селекторы класса были только универсальными и любой тип в селекторе игнорируется).

Похоже, что селекторы могут не работать в Gumbo ...

...