我想调整Flash ComboBox内部显示的默认ScrollBar的宽度。根据我在各种论坛上的研究,似乎最好的方法是将fl.controls.ScrollBar子类化,我在这里尝试过这样做:
package helpers {
import fl.controls.ScrollBar;
public class CustomScroller extends fl.controls.ScrollBar {
public function CustomScroller() {
super();
trace("custom scroller in full effect!");
width = 40;
}
}
}
然后,在我的库中,我拍摄了初始创建ComboBox时出现的“ScrollBar”影片剪辑,并将基类更改为“helpers.CustomScroller”。我在舞台上有三个ComboBox实例;但是,它们都没有显示除默认宽度之外的任何内容,也没有在构造函数中看到trace()
语句的输出。
知道为什么这不起作用?谢谢你的考虑。
答案 0 :(得分:3)
我只需要做一次,不想再这样做了。基本上,为了实现这一点,我需要创建一个名为fl.controls.WideScrollBar的fl.controls.ScrollBar副本。您还需要修改fl.containers.BaseScrollPane和fl.containers.ScrollPane。
在WideScrollBar中,我覆盖了public static const WIDTH:Number
在WideBaseScrollPane中,您需要将_verticalScrollBar和/或_horizontalScrollBar的类更改为WideScrollBar。然后在我的WideScrollPane中,我在构造函数中覆盖了对setStyle的调用,指向我的自定义类实例进行蒙皮。
答案 1 :(得分:1)
将滚动窗格作为子项添加到Sprite,然后缩放该父级sprite。滚动条将相应调整。如果ScrollPane的源现在太大,则按相同比例因子的倒数进行缩放。