加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex – 寻找用AS3编写的CSS解析器

发布时间:2020-12-15 01:45:29 所属栏目:百科 来源:网络整理
导读:我需要 load and apply CSS at runtime in my Flex app.我知道adobe docs说你需要到 compile the CSS before loading it,但我想找到一个解决方法. 我知道你可以设置这样的个人风格: cssStyle = new CSSStyleDeclaration();cssStyle.setStyle("color","valid
我需要 load and apply CSS at runtime in my Flex app.我知道adobe docs说你需要到 compile the CSS before loading it,但我想找到一个解决方法.

我知道你可以设置这样的个人风格:

cssStyle = new CSSStyleDeclaration();
cssStyle.setStyle("color","<valid color>);
FlexGlobals.topLevelApplication.styleManager.setStyleDeclaration("Button",cssStyle,true);

我打算解析一个CSS文件并按上面的方式应用每个属性.

我想知道是否:

> Adob??e有一个我可以使用的CSS解析器库
>其他人有一个我可以使用的CSS解析器
>如果我编写自己的CSS解析器,我应该注意什么

我知道adobe flex.text.StyleSheet类有一个CSS解析器,但我找不到一种方法来利用它. (有没有办法获得源代码?)

解决方法

编辑:此解决方案不起作用.从解析器中取出的所有选择器都将转换为小写.这可能适用于您的应用程序,但它可能不会……

我在这里留下这个答案,因为它可以帮助一些人寻找解决方案,并警告其他人这种方法的局限性.

虽然它不是为此而设计的,但可以使用StyleSheet类来解析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");
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读