1
我正在開發一個應用程序在AS3和空氣的iOS和Android有很多的標籤,並想知道如果有人知道如何減少字體的最佳方法if標籤文字的長度太長。AS3/AIR手機應用程序的動態文本大小取決於長度
我基本上希望標籤中的文本始終適合,無論長度如何。
謝謝
我正在開發一個應用程序在AS3和空氣的iOS和Android有很多的標籤,並想知道如果有人知道如何減少字體的最佳方法if標籤文字的長度太長。AS3/AIR手機應用程序的動態文本大小取決於長度
我基本上希望標籤中的文本始終適合,無論長度如何。
謝謝
這可以通過各種方式完成。
你可以稱之爲一個fitLabel()
傳遞文本字段和邊框:
fitLabel(textField, new Rectangle(0, 0, stage.stageWidth, stage.stageHeight));
一種方法將縮放文本字段的邊界:
protected function fitLabel(textField:TextField, bounds:Rectangle):void
{
var metrics:TextLineMetrics = textField.getLineMetrics(0);
var ratio:Number = Math.min(bounds.width/metrics.width,
bounds.height/metrics.height);
textField.scaleX = ratio;
textField.scaleY = ratio;
}
另一種方法是實現一個算法,調整字體大小佔DPI:
protected var dpi:uint = 72;
protected function fitLabel(textField:TextField, bounds:Rectangle):void
{
var metrics:TextLineMetrics = textField.getLineMetrics(0);
var format:TextFormat = textField.getTextFormat();
format.size = (stage.stageWidth/dpi) * 13;
textField.setTextFormat(format);
textField.width = bounds.width;
textField.height = bounds.height;
}
另一種方法是循環遍歷每次增加字體大小的循環,直到最大寬度達到邊界。
了詳細的解釋十分感謝。 – puks1978