我有一个文本字段,它动态调整其宽度以适合屏幕。如果文本不适合,我希望文本被截断并附加'...'。但是,如何知道文本值是否比可用文本字段宽度长?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. AS3设置文本字段
- 2. AS3圆角文本字段
- 3. 在$ http的截断字段
- 4. php截断字段问题
- 5. 如何判断文本字段在as3中何时为空
- 6. AS3 - 将经典文本字段变成TLF文本字段
- 7. 字段文本被截断得不一致
- 8. Twitter的API文本字段值将被截断
- 9. 在表单字段上打印时会话文本被截断
- 10. 截断文本字段中的“真实”值?
- 11. PHP文本截断限制字符
- 12. UILabel文本被截断为大字号
- 13. 子字符串截断文本?
- 14. 截断可变文本字符串
- 15. 截断sharepoint中的文本字符串
- 16. 如何防止AS3中的此任意文本截断
- 17. 使用VBA将文本文件导入Access截断长文本字段
- 18. 动态UILabel截断文本
- 19. IE截断文本右侧
- 20. 截断div内的文本
- 21. 使用linq截断文本
- 22. Multiline mx:文本截断
- 23. PHP截断文本base64
- 24. Rails:智能文本截断
- 25. MySQL文本列被截断
- 26. 多行文本截断
- 27. 文本溢出CSS截断
- 28. Android BottomNavigationView截断文本
- 29. ngTable中截断文本
- 30. 我的文本被截断
如果我通过说100个文本字段的列表循环这可能会添加一些严重的开销?嗯, – woodscreative 2012-04-17 16:26:08
是的,但你会怎么做?您可以设置最小和最大字符数,以便如果您在缓冲区之上或之下,它会启动,为您节省一些循环。 – Daniel 2012-04-17 18:38:13