Edytuj: To rozwiązanie nie działa.Wszystkie selektory pobrane z analizatora składni są konwertowane na małe litery. To może działać dla twojej aplikacji, ale prawdopodobnie nie będzie ...
Pozostawiam tu odpowiedź, ponieważ może pomóc niektórym osobom szukającym rozwiązania i ostrzegać innych o ograniczeniach tej metody.
Zobacz moje pytanie: „Looking for CSS parser written in AS3” dla pełnej dyskusji ale znalazłem parser CSS ukryte wewnątrz standardowych bibliotek. Oto w jaki sposób można go używać:
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");
}
}
}
Można wtedy zastosować style, używając:
cssStyle = new CSSStyleDeclaration();
cssStyle.setStyle("color", "<valid color>);
FlexGlobals.topLevelApplication.styleManager.setStyleDeclaration("Button", cssStyle, true);
Ten pracował dobrze dla mnie - zamiast korzystania parseCSS skończyło się podczas analizowania ciągu siebie i ustawienie każdej nieruchomości using: StyleManager.getStyleDeclaration ("Component") .setStyle ("właściwość", wartość); Coś w stylu hack, ale no cóż ... – onekidney