我使用了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解释
答案 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。