文本框在actionscript3中自动调整大小

时间:2011-07-15 10:55:20

标签: actionscript-3 textbox adobe flash-cs3 autoresize

我需要在actionscript3(IDE - adobe flash pro cs3)中实现文本框自动调整。例如,我的textarea的宽度为100像素,用户已经写了一些东西,大于100像素,那么我的文本框应该会越来越多。任何想法?

此外,我无法实现多行选项:当文本超出文本框时,它开始滚动。在线型我选择了'multiline'。

感谢

3 个答案:

答案 0 :(得分:4)

试试这个:

textfield.autoSize = "left";
textfield.multiline = true;
textfield.wordWrap = true;

希望它有所帮助, 罗布

答案 1 :(得分:1)

如果要自动调整textfield的大小,可以使用textfield.autoSize属性。

您正在使用多行文本字段,然后设置

textfield.autoSize = TextFieldAutoSize.LEFT; 

将文本左对齐并垂直调整字段大小。如果您使用单行文本字段,它将调整到右侧。

答案 2 :(得分:0)

当您已经知道文本字符串时,TextField的{​​{1}}属性非常适合调整动态文本字段(但请注意.autosize.multiline属性),但对输入文本字段没有帮助。

对于输入文字,我建议您监听.wordwrap事件,然后根据行数,Event.CHANGE.textWidth信息更新宽度/高度(例如TextLineMetrics)。

这是一个简单的例子:

myTextField.getLineMetrics

修改哦,如果您希望与var myField:TextField = new TextField(); myField.x = 10; myField.y = 10; myField.width = 100; myField.height = 20; myField.border = true; myField.type = TextFieldType.INPUT; myField.addEventListener(Event.CHANGE, textChangeHandler); addChild(myField); function textChangeHandler(evt:Event) { var buffer:Number = 10; myField.width = Math.max(100, (myField.textWidth + buffer)); myField.scrollH = 0; } 一起使用,那么只需添加:

.multiline

并在myField.multiline = true; 函数中添加:

textChangeHandler