編集:この解決策は機能しません。パーサーから取り出されたすべてのセレクターは小文字に変換されます。これはあなたのアプリケーションではうまくいくかもしれませんが、おそらくうまくいかないでしょう...
この回答は、解決策を探している人に役立ち、他の人にこの方法の制限を警告する可能性があるため、ここに残しておきます。
完全な議論については、私の質問「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);