ユーザーがテキストの進行状況を確認できるように、新しいテキストが追加されると、プログラムでテキストフィールドにデータを入力し、maxScrollH までスクロールします。TextField をクリックすると、scrollH が 0 に戻り、テキスト内の同等の位置にキャレットが配置されます。
textField.setSelection( text.length, text.length ); //sets the caretIndex/selection to the end
textField.scrollH = textField.maxScrollH; //scrolls to max
これは、textField テキスト プロパティが更新されたときにスクロールするために使用しているコードです。textField のクリック イベントにリスナーを追加しようとしましたが、これはある意味で機能しますが、目に見えるジャンプが発生します。
override protected function createChildren() : void
{
super.createChildren();
textField.addEventListener(MouseEvent.CLICK, handleTextFieldClick, false, 0, true);
}
protected function handleTextFieldClick(event:MouseEvent):void
{
textField.scrollH = currentTextFieldScrollPosition; //stored scrollH value
trace(textField.scrollH);
}
私の推測では、見つけられない場所に計算または保存されているスクロール位置があると思います。