zoukankan      html  css  js  c++  java
  • Flex 学习笔记 String长度

    根据需求要求字符串的长度,网上搜了一堆String长度算法,下面汇总并分析下。

    分析代码如下:

        <fx:Script>
            <![CDATA[
                import flash.utils.ByteArray;
                
                //界面初始化
                private function init():void{
                    trace("Length:"+lb.text.length);
                    
                    //一个字节大概7.5px宽,下面求得的字节数*7.5
                    //编码转换
                    var byteArr:ByteArray = new ByteArray();
                    byteArr.writeMultiByte(lb.text,"gbk");  
                    var byteLength:int = byteArr.length;
                    trace("Change GBK:"+byteLength +"Length:"+byteLength * 7.5); 
                    
                    //通过正则表达式将1个中文替换成两个"x",实现了真正字节长度的读取.
                    var n:int = lb.text.replace(/[^\x00-\xff]/g,"xx").length;
                    trace("Regex:"+n +"Length:"+n * 7.5); 
                    
                    //大小写字母,运算符,百分号等特殊标符使得上面计算结果出来的宽度不如意
                    //如字体加粗、字体大小调整也使得长度有所变化
                    
                    //最后使用textMetrics来计算某文本的宽度
                    var textMetrics:flash.text.TextLineMetrics = lb.measureText( lb.text ); 
                    trace("textMetrics "+textMetrics.width); 
                }
                
            ]]>
        </fx:Script>
        <s:Label id="lb" text="abCD一二三四1234" fontSize="16" />

    初始化页面打出的信息如下:

    Length:12
    Change GBK:16Length:120
    Regex:16Length:120
    textMetrics 142

    方法调用

        import flash.text.TextLineMetrics;
        import spark.components.Label;
        private function getLabelWidth(value:String):int{
        var lb:Label = new Label();
        lb.styleName = "lbStyle";//可添加样式如果 .lbStyle{fontSize: 16;}
        lb.regenerateStyleCache( false ); 
        var textMetrics:TextLineMetrics = lb.measureText( value ); 
        return textMetrics.width+10; 
        }
  • 相关阅读:
    Hackerrank--Savita And Friends(最小直径生成树MDST)
    Hackerrank--Kundu and Tree
    Hackerrank--String Function Calculation(后缀数组)
    Hackerrank--Ashton and String(后缀数组)
    Foundation 学习
    JS 严格模式
    判断移动设备横竖屏
    Nodejs解析HTML网页模块 jsdom
    百度Map调用
    Jade 报错
  • 原文地址:https://www.cnblogs.com/Anlycp/p/2599844.html
Copyright © 2011-2022 走看看