欢迎来到天天文库
浏览记录
ID:6769152
大小:27.00 KB
页数:5页
时间:2018-01-25
《flex中滚动条无法自动定位到组件底部的问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、Flex中滚动条无法自动定位到组件底部的问题在做聊天室群聊窗口文字消息添加的时候,发现一个奇怪的问题,滚动条总是不能到达底部。上网搜了搜,终于发现了问题的所在。当为一个容器添加一个child的时候,很容易想到的做法是:vbox.verticalScrollPosition=vbox.maxVerticalScrollPositon;但是,这是不完全正确的。这种做法是在childAdd事件触发的时候来设置verticalScrollPosition,但是使用这种方法,得到的效果总是滚动条离最下方有一段距离。其实,当chil
2、dAdd事件触发的时候,像vbox这些container并没有开始重新改变自己的尺寸。此时返回的maxVerticalScrollPosition不是最新的,而是上一次的。这时候需要使用callLater方法,就可以得到准确的maxVerticalScrollPosition。下面是一个例子:3、ortmx.controls.Button;importmx.events.ChildExistenceChangedEvent;privatefunctionaddAButton():void{varnewButton:Button=newButton();newButton.label="newbutton";vbox2.addChild(newButton);}privatefunctiononAdd(event:Event):void{callLater(focusNewRow);}privatefunction4、childAddHandler(event:ChildExistenceChangedEvent):void{callLater(focusNewRow);}publicfunctionfocusNewRow():void{vbox2.verticalScrollPosition=vbox2.maxVerticalScrollPosition;};]]>5、ontheButtontocontinueaddingchildrentothecontainerandwatchthescrollbar.Itwillalwaysscrolltothebottomofthecontainer."/>6、el="hello"/>除了在一个container里自动滚动,还有一个问题就是如何在一个TextArea里随着文字的动态变化,将滚动条自动定位到TextArea的底部。很容易想到的就是在TextArea的“change”事件中设置verticalScrollPosition。但是,这样依旧行不通,你需要使用valueCommit事件。当TextAre7、a得尺寸发生变化时,这个事件比change事件触发的要晚。示例代码如下:8、sscrolledtothebottom."/>
3、ortmx.controls.Button;importmx.events.ChildExistenceChangedEvent;privatefunctionaddAButton():void{varnewButton:Button=newButton();newButton.label="newbutton";vbox2.addChild(newButton);}privatefunctiononAdd(event:Event):void{callLater(focusNewRow);}privatefunction
4、childAddHandler(event:ChildExistenceChangedEvent):void{callLater(focusNewRow);}publicfunctionfocusNewRow():void{vbox2.verticalScrollPosition=vbox2.maxVerticalScrollPosition;};]]>
5、ontheButtontocontinueaddingchildrentothecontainerandwatchthescrollbar.Itwillalwaysscrolltothebottomofthecontainer."/>6、el="hello"/>除了在一个container里自动滚动,还有一个问题就是如何在一个TextArea里随着文字的动态变化,将滚动条自动定位到TextArea的底部。很容易想到的就是在TextArea的“change”事件中设置verticalScrollPosition。但是,这样依旧行不通,你需要使用valueCommit事件。当TextAre7、a得尺寸发生变化时,这个事件比change事件触发的要晚。示例代码如下:8、sscrolledtothebottom."/>
6、el="hello"/>除了在一个container里自动滚动,还有一个问题就是如何在一个TextArea里随着文字的动态变化,将滚动条自动定位到TextArea的底部。很容易想到的就是在TextArea的“change”事件中设置verticalScrollPosition。但是,这样依旧行不通,你需要使用valueCommit事件。当TextAre
7、a得尺寸发生变化时,这个事件比change事件触发的要晚。示例代码如下:8、sscrolledtothebottom."/>
8、sscrolledtothebottom."/>
此文档下载收益归作者所有