Chỉnh sửa: Giải pháp này không hoạt động.Tất cả các bộ chọn được lấy ra khỏi trình phân tích cú pháp được chuyển thành chữ thường. Điều này có thể làm việc cho ứng dụng của bạn nhưng có thể sẽ không ...
Tôi để lại câu trả lời ở đây vì nó có thể giúp một số người tìm kiếm giải pháp và cảnh báo những hạn chế của phương pháp này.
Xem câu hỏi của tôi: "Looking for CSS parser written in AS3" cho một thảo luận đầy đủ nhưng tôi tìm thấy một phân tích cú pháp CSS ẩn bên trong các thư viện chuẩn. Đây là cách bạn có thể sử dụng nó:
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");
}
}
}
Sau đó bạn có thể áp dụng các phong cách sử dụng:
cssStyle = new CSSStyleDeclaration();
cssStyle.setStyle("color", "<valid color>);
FlexGlobals.topLevelApplication.styleManager.setStyleDeclaration("Button", cssStyle, true);
này đã làm việc tốt cho tôi - thay vì sử dụng parseCSS tôi đã kết thúc phân tích các chuỗi bản thân mình và thiết lập mỗi tài sản sử dụng: StyleManager.getStyleDeclaration ("Thành phần"). setStyle ("thuộc tính", giá trị); Loại hack nhưng cũng oh ... – onekidney