Nar*_*rek 5 scroll actionscript-3 textfield
如何在以编程方式添加文本的同时在ActionScript中自动滚动到TextField的底部:
var _output:TextField = new TextField();
for (var i:int = 0; i < 100; ++i) {
_output.appendText("Hello World!");
}
Run Code Online (Sandbox Code Playgroud)
还要考虑应该启用TextField的垂直滚动,并且一旦添加了新文本,就应该再次执行自动滚动到底部.
您应该Event.CHANGE在有问题的TextField上侦听事件.相对于textField的事件描述如果捕获此事件,则使用 scrollV属性.说,像这样:
_output.addEventListener(Event.CHANGE,scrollAllDown);
function scrollAllDown(e:Event):void {
var tf:TextField=(e.target as TextField);
if (!tf) return;
tf.scrollV=tf.maxScrollV;
}
Run Code Online (Sandbox Code Playgroud)
更新:捕获Event.CHANGE不起作用,我留下这个以防万一有人偶然发现这种方法,并发现它不起作用.所以,唯一的方法是子类化TextField和手动覆盖appendText()方法以包括滚动,如下所示:
public class OutputTF extends TextField
{
// constructor omitted
override public function appendText(text:String):void
{ super.appendText(text); this.scrollV=this.maxScrollV; }
}
Run Code Online (Sandbox Code Playgroud)