AS3:扩展默认的ScrollBar组件

时间:2010-06-24 20:37:08

标签: flash combobox components scrollbar actionscript-3

我想调整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()语句的输出。

知道为什么这不起作用?谢谢你的考虑。

2 个答案:

答案 0 :(得分:3)

我只需要做一次,不想再这样做了。基本上,为了实现这一点,我需要创建一个名为fl.controls.WideScrollBar的fl.controls.ScrollBar副本。您还需要修改fl.containers.BaseScrollPane和fl.containers.ScrollPane。

在WideScrollBar中,我覆盖了public static const WIDTH:Number

在WideBaseScrollPane中,您需要将_verticalScrollBar和/或_horizo​​ntalScrollBar的类更改为WideScrollBar。然后在我的WideScrollPane中,我在构造函数中覆盖了对setStyle的调用,指向我的自定义类实例进行蒙皮。

答案 1 :(得分:1)

将滚动窗格作为子项添加到Sprite,然后缩放该父级sprite。滚动条将相应调整。如果ScrollPane的源现在太大,则按相同比例因子的倒数进行缩放。