<s:TextArea id="consoleTextArea"
change="consoleTextArea_changeHandler(event)"
valueCommit="consoleTextArea_valueCommitHandler(event)"
updateComplete="scrollToTheBottom()"
/>
А затем в ActionScript:
protected function consoleTextArea_valueCommitHandler(event:FlexEvent):void {
scrollToTheBottom();
}
protected function consoleTextArea_changeHandler(event:TextOperationEvent):void {
scrollToTheBottom()
}
public function scrollToTheBottom():void {
var scrollBar:VScrollBar = consoleTextArea.scroller.verticalScrollBar;
scrollBar.value = scrollBar.maximum;
consoleTextArea.validateNow();
if (scrollBar.value != scrollBar.maximum) {
scrollBar.value = scrollBar.maximum;
consoleTextArea.validateNow();
}
}
Возможно, вам потребуется поместить оператор if в цикл на несколько итераций или до тех пор, пока значение не совпадет или не приблизится к максимуму.
Обновление : добавлен прослушиватель события updateComplete. Это может помешать кому-то печатать, но может отлично подойти для этого варианта использования.