about verticalScrollPosition
I'm curious about these situation:
package {
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.utils.getTimer;
import flashx.textLayout.container.ContainerController;
import flashx.textLayout.elements.*;
public class TestTLF3 extends Sprite
{
private var _lineNum:int = 0;
private var _textFolw:TextFlow = new TextFlow();
private var _container:Sprite;
public function TestTLF3()
{
var btn:Sprite = new Sprite();
btn.graphics.beginFill(0xff0000)
btn.graphics.drawRect(0, 0, 50, 20);
addChild(btn);
btn.x = 200;
btn.addEventListener(MouseEvent.CLICK, onBtnClick);
}
private function onBtnClick(e:MouseEvent):void{
addNextMsg();
}
private function addNextMsg():void{
var p:ParagraphElement = new ParagraphElement();
var span:SpanElement = new SpanElement();
span.fontSize = 11;
span.text = (++_lineNum).toString();
trace(_lineNum);
p.addChild(span);
_textFolw.addChild(p);
updateDisplay();
}
private function updateDisplay():void{
if(_container!=null)
while(_container.numChildren>0)
_container.removeChildAt(0);
if(_container!=null && _container.parent!=null)
_container.parent.removeChild(_container);
_container = new Sprite();
_container.x = 5;
_container.y = 18;
addChild(_container);
var controller:ContainerController = new ContainerController(_container, 260, 75);
_textFolw.flowComposer.removeAllControllers();
_textFolw.flowComposer.addController(controller);
_textFolw.flowComposer.updateAllControllers();
var textHeight:int = Math.ceil(controller.getContentBounds().height);
var vsp:Number = 0;
if(textHeight < controller.compositionHeight){
vsp = 0;
}else{
vsp = (textHeight - controller.compositionHeight);
}
trace("vsp(before)=" + vsp);
controller.verticalScrollPosition = vsp;
trace("vsp(after)=" + controller.verticalScrollPosition);
trace(textHeight
+ "-" + controller.verticalScrollPosition.toFixed(2)
+ "-" + controller.compositionHeight.toFixed(2)
+ "=" + (textHeight-controller.verticalScrollPosition-controller.compositionHeight).toFixed(2)
);
}
}
}
output:
[SWF] D:\works\TestTLF\bin-debug\TestTLF3.swf - 562,059 bytes after decompression
1
vsp(before)=0
vsp(after)=0
11-0.00-75.00=-64.00
2
vsp(before)=0
vsp(after)=0
24-0.00-75.00=-51.00
3
vsp(before)=0
vsp(after)=0
37-0.00-75.00=-38.00
4
vsp(before)=0
vsp(after)=0
50-0.00-75.00=-25.00
5
vsp(before)=0
vsp(after)=0
64-0.00-75.00=-11.00
6
vsp(before)=2
vsp(after)=1.3232421875
77-1.32-75.00=0.68
7
vsp(before)=15
vsp(after)=14.043782552083343
90-14.04-75.00=0.96
8
vsp(before)=27
vsp(after)=26.764322916666657
102-26.76-75.00=0.24
9
vsp(before)=40
vsp(after)=39.48486328125
115-39.48-75.00=0.52
10
vsp(before)=59
vsp(after)=54.12324218750001
134-54.12-75.00=4.88
11
vsp(before)=78
vsp(after)=67.3232421875
153-67.32-75.00=10.68
12
vsp(before)=97
vsp(after)=80.52324218749999
172-80.52-75.00=16.48
Although, visually, it seems correct, showed the last line.
But, why after I assign verticalScrollPosition to 97, it represent 80.52324218749999 on the 12th?
