我需要在actionscript3(IDE - adobe flash pro cs3)中实现文本框自动调整。例如,我的textarea的宽度为100像素,用户已经写了一些东西,大于100像素,那么我的文本框应该会越来越多。任何想法?
此外,我无法实现多行选项:当文本超出文本框时,它开始滚动。在线型我选择了'multiline'。
感谢
答案 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