我有如下算法:現在如何查找文本字段中剩餘的空間?
if(textfield has no space left/full of characters till width)
do something
else
keep adding characters
,問題是我不想要的文本字段侷限於字符的X數千萬,但人物的實際寬度。
任何線索?
我有如下算法:現在如何查找文本字段中剩餘的空間?
if(textfield has no space left/full of characters till width)
do something
else
keep adding characters
,問題是我不想要的文本字段侷限於字符的X數千萬,但人物的實際寬度。
任何線索?
對於TextField的每次更改,請使用TextField
類的getLineMetrics(lineIndex:int)
方法(reference)檢查文本的實際像素寬度。如果實際的文本寬度大於允許的寬度,則從末尾移除字符,直到它再次變得足夠窄。
如果您使用的是flash.text.engine,那麼如果從getLineMetrics返回的度量標準未被證明是準確的,則還可以依賴TextLine.getAtomBounds。祝你好運。 – 2012-02-02 22:22:34
我回來了,我有來自外星世界的消息。 getLineMetrics不能證明準確。 – 2012-02-04 05:18:47
你可以試試'TextField'的'textWidth'屬性,儘管我懷疑它只是一個方便的屬性,返回與'yourTextField.getLineMetrics(0).width'相同的值。 – 2012-02-04 12:01:22
你的意思是你想檢查字符數不包括任何空格?在這種情況下,這應該是你的答案..
var whitespace:RegExp = /(\t|\n|\s{2,})/g;
var trimmedValue:String = txtFieldValue.replace(whitespace, "");
if(trimmedValue < maxCharacterCount) {
do something
} else {
keep adding chars
}
你需要的是一個具有maxChars屬性的輸入文本字段。設置maxChars爲12,並且您可以輸入字符,直到達到限制。
他特別聲明他不想限制字符,但寬度。他正在尋找角色指標來計算何時在視覺上填充文本字段。 – 2012-02-02 22:20:18
你是什麼意思的「空間」,你想添加字符,直到達到特定的寬度? – Kodiak 2012-02-02 17:01:55
space =究竟是什麼?開導我們 – 2012-02-02 17:15:37
我認爲他意味着角色的寬度 - 他們在屏幕上佔用多少空間。 – 2012-02-02 17:45:40