如何以编程方式滚动到mx的底部:Flex中的TextArea?

时间:2010-06-22 20:01:06

标签: flex

考虑以下mx:TextArea ..

<mx:TextArea id="textArea"/>

..使用..

定期更新新的文字行
textArea.text += newLineBeingAdded + "\n";

..如何确保将textarea向下滚动到底部,以便添加的最后一行对用户可见?

4 个答案:

答案 0 :(得分:5)

添加文本集

callLater(scrollToEnd);

....

function scrollToEnd():void {
   textArea.verticalScrollPosition = int.MAX_VALUE;
}

它应滚动到最后。

比callLater更好的方法是使用invalidateProperties / commitProperties

答案 1 :(得分:1)

我不知道使用Halo TextArea显式执行此操作的方法,但Spark TextArea有一个scrollToRange方法,在此上下文中可能对您有用。如果您不想使用Spark组件,另一种方法是使用Halo List组件并将每个新行添加为List的数据提供程序中的新项。每次添加到数据提供程序后,您都可以在List上调用scrollToIndex以确保新项目可见。希望有所帮助。

答案 2 :(得分:1)

该代码适用于Flash Builder 4.5.1:

chatroom.scrollToRange(int.MAX_VALUE, int.MAX_VALUE); 

答案 3 :(得分:0)

将光标放在文本的末尾。那也应该滚动显示光标:

textArea.selectionBeginIndex =  textArea.text.length;
textArea.selectionEndIndex =  textArea.text.length;