最近在做项目时,发现了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, 正确!
}