Как программно прокрутить до конца mx: TextArea во Flex? - PullRequest
2 голосов
/ 23 июня 2010

Рассмотрим следующее mx: TextArea ..

<mx:TextArea id="textArea"/>

.. периодически обновляется новыми строками текста с использованием ..

textArea.text += newLineBeingAdded + "\n";

.. как сделать так, чтобы текстовая область прокручивалась вниз, чтобы последняя добавленная строка была видна пользователю?

Ответы [ 4 ]

5 голосов
/ 23 июня 2010

после добавления текста установите

callLater(scrollToEnd);

....

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

и он должен прокрутиться до конца.

Даже лучше, чем callLater будет использовать invalidateProperties / commitProperties.

1 голос
/ 26 сентября 2011

Код работает у меня под Flash Builder 4.5.1:

chatroom.scrollToRange(int.MAX_VALUE, int.MAX_VALUE); 
1 голос
/ 23 июня 2010

Я не знаю способа сделать это явно с Halo TextArea, но Spark TextArea имеет метод scrollToRange, который может быть полезен вам в этом контексте.Другой способ добиться этого, если вы не хотите использовать компоненты Spark, - это использовать компонент Halo List и добавить каждую новую строку в качестве нового элемента в поставщик данных List.После каждого добавления к поставщику данных вы можете вызывать scrollToIndex в Списке, чтобы убедиться, что новый элемент видим.Надеюсь, это поможет.

0 голосов
/ 23 июня 2010

Поместите курсор в конец текста. Это также должно прокрутить, чтобы показать курсор:

textArea.selectionBeginIndex =  textArea.text.length;
textArea.selectionEndIndex =  textArea.text.length;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...