最近在做項目時,發現了textfield的一個BUG,不過這個
BUG不是很大,相信也很難引起ABODE的注意吧
import flash.text.TextField;
var txt:TextField = new TextField();
txt.width = 100;
txt.height = 100;
txt.text = "Line 1/nLine 2/nLine 3/nLine 4/nLine 5/nLine 6/nLine 7/nLine 8/nLine 9/nLine 10";
addChild(txt);
trace("bottomScrollV is:"+txt.bottomScrollV); // 輸出 6, 正確
trace("maxScrollV is:"+txt.maxScrollV); // 輸出 5, 正確
stage.addEventListener(MouseEvent.CLICK,on_click);
function on_click(evt:MouseEvent):void
{
txt.height = 50;
trace("bottomScrollV is:"+txt.bottomScrollV); // 輸出 6, 錯誤!(應輸出3)
trace("maxScrollV is:"+txt.maxScrollV); // 輸出 5, 錯誤!(應輸出8)
}
以下是修正方法,具體的解釋我也不太清楚,也許是在getCharBoundaries時進行重新定位吧
function on_click(evt:MouseEvent):void
{
txt.height = 50;
txt.getCharBoundaries(0);
trace("bottomScrollV is:"+txt.bottomScrollV); // 輸出 3, 正確!
trace("maxScrollV is:"+txt.maxScrollV); // 輸出 8, 正確!
}