如何在flex 4.5中应用css运行时?

时间:2012-07-30 13:24:00

标签: flex flex4 flex4.5

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

任何线索?

由于

2 个答案:

答案 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。然后你可以使用

加载编译的css
styleManager.loadStyleDeclarations("../assets/filename.swf");