我有这种风格的CSS文件:
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
global{
chrome-color: #DEEBFF;
color: #444444;
content-background-color: #FFFFFF;
symbol-color: #333333;
roll-over-color: #EBF4FF;
selection-color: #DEEBFF;
focus-color: #EEEEEE;
accent-color: #C0E3FF;}
s|Application{
background-color: #EBF4FF;
}
我想在运行时更改其中一些颜色,如chrome-color或symbol-color,但无法找到setStyle的这些属性。
任何线索?
由于
答案 0 :(得分:2)
您可以更改特定组件的全局样式和样式。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
global
{
fontWeight: bold;
fontSize: 20;
}
</fx:Style>
<fx:Script>
<![CDATA[
protected function button1_clickHandler(event: MouseEvent): void
{
styleManager.getStyleDeclaration("global").setStyle("fontSize", 12);
styleManager.getStyleDeclaration("global").setStyle("fontWeight", "normal");
}
protected function button2_clickHandler(event: MouseEvent): void
{
myLabel.setStyle("fontSize", 100);
}
]]>
</fx:Script>
<s:Button click="button1_clickHandler(event)"
label="Global" />
<s:Button x="100 "
click="button2_clickHandler(event)"
label="Label" />
<s:Label id="myLabel"
y="50"
text="Some text" />
</s:Application>
答案 1 :(得分:1)
如果您在运行时需要一些预定义的更改,那么您可以创建多个css文件并在运行时加载它们。要在运行时加载CSS,你必须将css编译成swf,在flash builder中可以通过右键单击css文件并选择将CSS编译为swf来完成,或者你可以使用
将CSS编译为swf。mxmlc filename.css
此命令将在css文件所在的同一目录下生成filename.swf。然后你可以使用
加载编译的cssstyleManager.loadStyleDeclarations("../assets/filename.swf");