1

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

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

当前状态

我想要实现的目标(固定高度的拇指):

我想要达到的目标

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

4

1 回答 1

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;
        }
    }

正如您所看到的,没有任何标志可以跳过thumb.heightelse 块中的设置。可能的解决方案可以是扩展ScrollPane并覆盖该configUI方法 - 并添加您的自定义 CustomScrollPane (扩展 ScrollBar 并覆盖该updateThumb方法)而不是 created _verticalScrollBar:ScrollBar

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

于 2013-01-24T10:38:42.840 回答