2010-06-24 220 views
2

我想调整出现在Flash ComboBox内的默认ScrollBar的宽度。从我在各种论坛的研究,这似乎是最好的办法是子类fl.controls.ScrollBar,我试着做此:AS3:扩展默认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; 
    } 
    } 
} 

然后,在我的图书馆,我已经采取了“ ScrollBar“影片剪辑,该剪辑在初始创建ComboBox时出现,并将基类更改为”helpers.CustomScroller“。舞台上有三个ComboBox实例;然而,他们没有显示任何东西,但默认宽度,我也看不到我的构造函数中的trace()语句的输出。

任何想法,为什么这不工作?感谢您的考虑。

回答

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的调用,以指向我的自定义类实例进行蒙皮。

+0

谢谢!听起来像是PITA,但我现在没有时间写自己的课。你在哪里找到组件本身的来源以修改它们? – justinbach 2010-06-25 12:40:32

1

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