我以編程方式填充文本字段,並在添加新文本時滾動到maxScrollH,以便用戶可以看到文本的進度。這工作正常,直到我單擊TextField,它將scrollH設置回0並將插入符號放置在文本中的等效位置。Actionscript 3 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上的click事件中添加一個監聽器,它以某種方式工作,但會導致可見的跳轉。
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);
}
我的猜測是有一個滾動位置被計算或存儲在某個我找不到的地方。
我有相同的AS3問題(在TextArea中的UIScrollbar在重點獲取textarea然後丟失時重置其位置),但focusInHandler似乎永遠不會被我調用來覆蓋它。我也沒有得到第一個代碼塊 - 這是focusInHandler通常做的事情嗎?你試圖做什麼不同呢?混淆了我 - 如果它不是focusinhandler的默認代碼,爲什麼要截斷它?我對AS3比較陌生。 – Amalgovinus 2010-10-18 19:52:54