如何使用单个滚动条滚动两个文本框?
答案 0 :(得分:2)
您可以尝试以下方法:
<mx:TextArea id="area1" verticalScrollPolicy="off" verticalScrollPosition="{area2.verticalScrollPosition}" />
<mx:TextArea id="area2" />
这样,area2将有一个滚动条,而area1将没有。当用户滚动区域2时,这两个区域将一起滚动。
答案 1 :(得分:1)
@Hrundik这是一个很好的方法,如果文本区域的内容和大小相等,但如果它们不是这将给你运行时错误,如果area2的verticalScrollPosition大于area1的最大值。所以我会创建一个函数来处理这个并检查area1.maxScrollPosition&gt;在设置area1滚动位置之前的area2.verticalScrollPosition。
另一种方法....
这只是一次完成或者你打算重复使用???
您可以将textarea扩展为将目标textarea作为参数,如下所示:
private var _target:TextArea;
public function set target(val:TextArea):void{
_target = val;
}
然后覆盖srollHandler函数,就像这样......
override protected function srollHandler(event:Event):void{
super.scrollHandler(event);
if(event is ScrollEvent && _target != null)
_target.verticalScrollPosition = super.textField.scrollV - 1;
}
最终像这样使用....
<shua:TextAreaExtend text="{someText}" target="{myBuddy}"/>
<mx:Text id="myBuddy" />
但这可能会被杀死......哈哈
答案 2 :(得分:1)
如果两个滚动控件的高度不同,您仍然可以通过获取并使用verticalScrollPosition作为百分比而不是绝对值来将一个绑定到另一个。
干杯