Flash滚动条上拇指图形的大小

时间:2013-01-24 08:35:32

标签: actionscript-3 flash flash-cs6

我正在尝试在flash中自定义内置滚动条组件。具体来说,我需要自定义滚动条的拇指以具有固定的高度和宽度。

这就是我现在所拥有的。拇指高度自行调整。我需要修理拇指的高度。

current state

我想要达到的目标(固定高度拇指):

what I'm trying to achieve

任何有关如何在Flash中设置拇指大小的指示都将不胜感激。

1 个答案:

答案 0 :(得分:3)

没有简单的方法可以做到这一点,我的意思是Flash CS6 ScrollBar不支持此功能。受保护方法fl.controls.ScrollBar中的拇指更新高度:

    protected function updateThumb():void {
        var per:Number = _maxScrollPosition - _minScrollPosition + _pageSize;
        if (track.height <= 12 || _maxScrollPosition <= _minScrollPosition || (per == 0 || isNaN(per))) {
            thumb.height = 12;
            thumb.visible = false;
        } else {
            thumb.height = Math.max(13,_pageSize / per * track.height);
            thumb.y = track.y+(track.height-thumb.height)*((_scrollPosition-_minScrollPosition)/(_maxScrollPosition-_minScrollPosition));
            thumb.visible = enabled;
        }
    }

正如您所看到的那样,没有任何标志可以跳过else块中thumb.height的设置。 可能的解决方案可以扩展ScrollPane并覆盖configUI方法 - 并添加自定义CustomScrollPane(扩展ScrollBar并覆盖updateThumb方法)已创建_verticalScrollBar:ScrollBar

另一个解决方案可以用swf的主ApplicationDomain中的同名fl.controls.ScrollPane替换原来的fl ScrollPane类。但要做到这一点,你必须组织类加载,使你自己的类在fl之前加载,你必须在外部swfs中动态加载所有类。