我正在尝试通过CSS定义我的Flex 4皮肤,但我的自定义皮肤将无法显示。这就是我在做的事情:
在我的应用程序中,我导入了我的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");
}
我的理解是我的按钮应该通过CSS提供它的skinClass但它无法工作。如果我像下面一样直接定义skinClass,它可以正常工作:
<s:Button label="Button" skinClass="skins.buttons.CircleButton"/>
任何帮助都将不胜感激。
答案 0 :(得分:0)
根据official Flex CSS documentation:
类选择器:CSS类选择器 匹配满足类的组件 条件。用于声明的CSS语法 类选择器是前缀 带点的条件。你也可以 将类选择器声明为 类型选择器的条件,或 普遍适用于任何符合的类型 阶级条件。
.header { background-color: #CCCCCC; }
HBox.footer { background-color: #999999; }
注意:在Flex中,满足类条件 在a上使用styleName属性 零件。例如,你可能有 两类HBox:“标题”和 “页脚”。上面是第一个选择器 适用于任何组件 的styleName = “报头”;第二 选择器应该只适用于HBox 具有styleName =“footer”的组件 (实际需要的东西 固定并在Gumbo中执行,如 只有最新的类选择器 通用和选择器中的任何类型 被忽略了。)
看起来选择器可能无法在Gumbo中工作......
答案 1 :(得分:0)
确保首先在根应用程序文件下包含CSS文件。其次,我会尝试在没有类型选择器的情况下执行css,因此只需执行s|Button.circle
而不是.circle
。
修改
您还可以尝试将样式标记放在与按钮相同的容器中,以查看是否有效。你确定你的应用程序可以找到你的style.css吗?显示更多代码可能有助于这种情况。