如何将两个不同的CSS文件动态加载到Flex应用程序中?

时间:2009-07-01 06:34:08

标签: flex air flash

我使用了blue.css和flex.c中的beige.css。我有动态的主题组合框用户改变主题所以我stroed

[绑定] private var pickcss:Array = [“blue.css”,“beige.css”];

私有函数css_initializeHandler(event:Event):void

    {
        pickcssComboBox.selectedIndex = pickcss.indexOf(0);
     }

private function css_changeHandler(event:Event):void         {

//这里我将如何申请          styleid = [pickcssComboBox.selectedItem];         }

“mx:Label text =”Theme“/>

“mx:ComboBox id =”pickcssComboBox“dataProvider =”{pickcss}“     初始化= “css_initializeHandler(事件)”     change =“css_changeHandler(event)”width =“110”/>“

我用的风格没有id所以我该怎么办?如果你知道plz解释

1 个答案:

答案 0 :(得分:3)

首先,要动态加载样式表,您需要将它们编译为单独的.swf文件。这可以使用mxmlc(或在Flex Builder中通过右键单击css文件并选择“将CSS编译为SWF”)来完成。 然后,要加载样式-swf,请使用StyleManager

StyleManager.loadStyleDeclarations("blue.swf");

如果要在样式之间切换,您还需要卸载以前的样式。因此,假设您将css文件的名称放在组合框中,在css_changeHandler中,您将执行以下操作:

StyleManager.unloadStyleDeclarations(styleid)
styleid = pickcssComboBox.selectedItem;
StyleManager.loadStyleDeclarations(styleid);

有关详细信息,请参阅Loading style sheets at run time