我有一个使用postscript字体的动态textField(使用CS5中的Classic字体引擎)。我在作者时创建了textField。当我尝试使用textField.textWidth属性确定textField的实际宽度时,返回的宽度非常错误。例如,屏幕上显示的文本的宽度约为350像素。但返回的宽度只有150像素。我尝试过切换字体,并使用TextLineMetrix无济于事。
为什么我没有得到准确的宽度?
答案 0 :(得分:9)
确保设置文本字段的autoSize属性,这将使flash将宽度识别为文本的宽度而不是包含文本字段的宽度。尝试这样的事情......
myTextField.autoSize = TextFieldAutoSize.LEFT;
trace(myTextField.textWidth);
答案 1 :(得分:2)
我发现getBounds给出了最接近的结果:
var bounds:Rectangle = textfield.getBounds(textfield.parent);
答案 2 :(得分:0)
var str:String = "hello world";
mytf.autoSize = true;
mytf.text = str;
trace(mytf.textWidth )
trace (mytf._width)
62和63.8
奇怪:S