0

我有这种样式的 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 的这些属性。

有什么线索吗?

谢谢

4

2 回答 2

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>
于 2012-07-30T15:42:35.380 回答
1

如果您在运行时有一些预定义的更改集,那么您可以创建多个 css 文件并在运行时加载它们。要在运行时加载 CSS,您必须将 css 编译为 swf,在 flash builder 中,这可以通过右键单击 css 文件并选择将 CSS 编译为 swf 来完成,或者您可以使用将 CSS 编译为 swf

mxmlc filename.css

此命令将在您的 css 文件所在的同一目录中生成 filename.swf。然后你可以使用加载编译的css

styleManager.loadStyleDeclarations("../assets/filename.swf");
于 2012-08-02T17:56:02.510 回答