编辑:此解决方案不起作用。从解析器中取出的所有选择器都转换为小写。这可能适用于您的应用程序,但它可能不会...
我将这个答案留在这里,因为它可能会帮助一些人寻找解决方案,并警告其他人这种方法的局限性。
请参阅我的问题:“寻找用 AS3 编写的 CSS 解析器”以获得完整的讨论,但我发现隐藏在标准库中的 CSS 解析器。以下是如何使用它:
public function extractFromStyleSheet(css:String):void {
// Create a StyleSheet Object
var styleSheet:StyleSheet = new StyleSheet();
styleSheet.parseCSS(css);
// Iterate through the selector objects
var selectorNames:Array = styleSheet.styleNames;
for(var i:int=0; i<selectorNames.length; i++){
// Do something with each selector
trace("Selector: "+selelectorNames[i];
var properties:Object = styleSheet.getStyle(selectorNames[i]);
for (var property:String in properties){
// Do something with each property in the selector
trace("\t"+property+" -> "+properties[property]+"\n");
}
}
}
然后,您可以使用以下方式应用样式:
cssStyle = new CSSStyleDeclaration();
cssStyle.setStyle("color", "<valid color>);
FlexGlobals.topLevelApplication.styleManager.setStyleDeclaration("Button", cssStyle, true);