我正在尝试在flash中自定义内置滚动条组件。具体来说,我需要自定义滚动条的拇指以具有固定的高度和宽度。
这就是我现在所拥有的。拇指高度自行调整。我需要修理拇指的高度。
我想要达到的目标(固定高度拇指):
任何有关如何在Flash中设置拇指大小的指示都将不胜感激。
答案 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中动态加载所有类。