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