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的值,控制數字的密集程度