How to autoscroll to the bottom of the TextField in ActionScript while adding text there programmatically:
var _output:TextField = new TextField();
for (var i:int = 0; i < 100; ++i) {
_output.appendText("Hello World!");
}
Also consider that the vertical scrolling of the TextField should be enabled, and once a new text was added then autoscroll to the bottom should be executed again.
You should listen for Event.CHANGE
event on the TextField in question. Event description relative to textField And if you capture this event, you play with scrollV
property. Say, like this:
_output.addEventListener(Event.CHANGE,scrollAllDown);
function scrollAllDown(e:Event):void {
var tf:TextField=(e.target as TextField);
if (!tf) return;
tf.scrollV=tf.maxScrollV;
}
Update: Catching Event.CHANGE
does not work, I leave this in case someone stumbles on this method and too finds out it doesn't work. So, the only way is to subclass the TextField
and manually override appendText()
method to include scrolling, like this:
public class OutputTF extends TextField
{
// constructor omitted
override public function appendText(text:String):void
{ super.appendText(text); this.scrollV=this.maxScrollV; }
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With