我有一個文本字段,它動態調整其寬度以適合屏幕。如果文本不適合,我希望文本被截斷並附加'...'。但是,如何知道文本值是否比可用文本字段寬度長?AS3文本字段,截斷
回答
yourTextField.textWidth
爲您提供了TextField文本的長度。 只要確保首先設置TextField的autosize屬性,即可真正獲取文本的寬度,而不是TextField的寬度。
可能唯一的方法就是如果textWidth比寬度更長,可以逐個字母地逐個添加或刪除一個字母並添加省略號並檢查寬度直到它接近填充整個文本字段。
好吧,經過一些腦力勞動後,我想如何將字符串留在textField中進行裁剪,然後在新的MC中添加一個額外的「...」,並將其可見性設置爲false。當textField.textWidth> = textField.width時,它使「...」MC可見並將其放置在textField的末尾。這可能在textField的內部或外部。
我需要這個完全一樣的功能,我所做的就是每當resize事件被觸發,導致了TextField
目標需要被調整我進行一個小環如下:
tfMessage.text = message;
if(tfMessage.width > maximumWidth)
{
tfMessage.appendText("...");
while(tfMessage.width > maximumWidth)
{
tfMessage.text = tfMessage.text.substr(0, -4) + "...";
}
}
確保TextField
對象的autoSize
屬性設置爲TextFieldAutoSize.LEFT
以使對象在您更新文本時自動調整大小。您可以使用TextFieldAutoSize
枚舉中的其他值,但LEFT
最適合我。使用示例:
tfMessage.autoSize = TextFieldAutoSize.LEFT;
看起來似乎過度殺傷力,但它是您最好的,最乾淨的選項。此外,我使用它來調整數百個TextField
對象的大小,並且在普通計算機上沒有性能下降。給Flash一些功勞哈哈,他們已經做好AVM2的調整和優化。
無論如何,我希望這可以幫助,完美的作品。祝你的項目好運。
嘿怎麼樣去簡單:-)
while (textfield.numLines > MAX)
textfield.text = textfield.text.slice(0, -4) + "...";
享受!
OP詢問截斷寬度,而不是高度... – 2015-04-05 14:48:42
然後,OP可以將MAX設置爲1 – mika 2015-04-06 01:03:26
根據循環中沒有寬度檢查,根本不會截斷文本。除非你的意思是在運行循環之前將wordWrap/multiline設置爲true ...是的,那樣它就可以工作了:-) – 2015-04-08 13:36:33
- 1. 賈斯珀文本字段被截斷
- 2. 截斷文本
- 3. AS3訪問文本字段
- 4. AS3設置文本字段
- 5. AS3圓角文本字段
- 6. MigraDoc段落文本,可能截斷?
- 7. 截斷文本,但不截斷HTML
- 8. 當在mysql中保存文本字段時截斷Utf8字符
- 9. 在$ http的截斷字段
- 10. php截斷字段問題
- 11. 如何判斷文本字段在as3中何時爲空
- 12. AS3 - 將經典文本字段變成TLF文本字段
- 13. 在表單字段上打印時會話文本被截斷
- 14. 字段文本被截斷得不一致
- 15. 截斷文本字段中的「真實」值?
- 16. Twitter的API文本字段值將被截斷
- 17. 如何防止AS3中的此任意文本截斷
- 18. UILabel文本被截斷爲大字號
- 19. 子字符串截斷文本?
- 20. 紅寶石截斷字+長文本
- 21. 截斷可變文本字符串
- 22. PHP文本截斷限制字符
- 23. 截斷sharepoint中的文本字符串
- 24. 使用VBA將文本文件導入Access截斷長文本字段
- 25. 腳本截斷字符串
- 26. UILabel被截斷的文本
- 27. ngTable中截斷文本
- 28. Win32 MessageBox截斷文本
- 29. UILabel文本被截斷
- 30. 我的文本被截斷
如果我通過說100個文本字段的列表循環這可能會添加一些嚴重的開銷?嗯, – woodscreative 2012-04-17 16:26:08
是的,但你會怎麼做?您可以設置最小和最大字符數,以便如果您在緩衝區之上或之下,它會啓動,爲您節省一些循環。 – Daniel 2012-04-17 18:38:13