Редактировать: Это решение не работает. Все селекторы, извлеченные из анализатора, преобразуются в нижний регистр. Это может работать для вашего приложения, но, вероятно, не будет ...
Я оставляю этот ответ здесь, потому что он может помочь некоторым людям в поиске решения и предупредить других об ограничениях этого метода.
См. Мой вопрос: " Ищем парсер CSS, написанный на AS3 " для полного обсуждения, но я нашел парсер 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);