laya設置數字的兩種方法

1、laya自帶組件Font_Clip,直接調用接口

fontClip.value = String(value);即可

2、美術給的資源爲單張的數字資源,或者包含小數點點特殊符號時,這時候方法一用起來不再方便,當然,這裏可以用最原始的方法,添加多張img,然後根據實際數據設置skin,並調整img的位置實現居中,這麼做也不是不可以,但是一張兩張圖可以這麼做,如果需要一次顯示10張,100張(雖然不太可能)呢?會多出來很多不必要的代碼,不僅難維護,而且影響代碼美觀。其實,這裏可以採用更智能的方法,需要多少張就new多少張,最後根據圖片總的width設置每張圖片的位置

代碼如下

private function getImg():Sprite{
    var img:Sprite = new Sprite();
    img.textture = Loader.getRes(url);
    return img;
}
private function showNum(number:int):void{
    //兩張圖片數字之間的距離
    var space:int = -2;
    //path爲資源根路徑,這裏寫成img/
    var path:String = "img/";
    var images:Array = [];
    var w:int = 0;
    var h:int = 0;
    var url:String = "";
    var arr:Array = num.toString().split("");
    for(var i:int = 0;i<arr.length;i++){
        url = path + "num_"+parseInt(arr[i])+".png";
        if(!img||!img.texture){
            continue;
        }
        w+=img.texture.sourceWidth + space;
        h = Math.max(h,img.texture.sourceHeight);
        images.push(img);
    }
    w-=space;
    //以父容器左上角爲基準
    var px:int = -w/2 + container.width/2;
    var py:int = -h/2 + container.height/2;
    for(I = 0,len = images.length;i<len;i++){
        img = images[i];
        if(!img||!img.texture){
            continue;
        }
        img.x = px;
        img.y = py + (h - img.texture.sourceHeight)/2;
        px+=img.texture.sourceHeight+space;
        //container爲父容器
        container.addChild(img);
    }
}

可以根據需要調整space的值,控制數字的密集程度

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章