2011-02-14 66 views
3

我有一個使用postscript字體的動態textField(在CS5中使用Classic字體引擎)。我在創作時創建了textField。當我嘗試使用textField.textWidth屬性確定textField的實際寬度時,返回的寬度大錯特錯。例如,屏幕上顯示的文字大約有350像素的寬度。但返回的寬度僅爲150像素。我嘗試切換字體,並使用TextLineMetrix無濟於事。textField textWidth不正確ActionScript 3

任何想法,爲什麼我沒有得到一個準確的寬度?

回答

9

確保您設置的文本字段的autoSize屬性,這會導致閃存識別寬度的文本的寬度,而不是包含文本字段的寬度。嘗試這樣的事情......

myTextField.autoSize = TextFieldAutoSize.LEFT; 
trace(myTextField.textWidth); 
+0

對我來說這一次的工作,謝謝! – ramayac 2011-06-08 17:52:56

0
var str:String = "hello world"; 
mytf.autoSize = true; 
mytf.text = str; 
trace(mytf.textWidth) 
trace (mytf._width) 

62和63.8

古怪:S

2

我發現的getBounds給最接近的結果:

var bounds:Rectangle = textfield.getBounds(textfield.parent); 
+0

.textWidth屬性給了我最奇怪的結果(大部分更大),但這確實有效。 – PSIXO 2014-03-13 14:32:20