我正在尝试自定义 Flash 中的内置滚动条组件。具体来说,我需要自定义滚动条的拇指以具有固定的高度和宽度。
这就是我现在所拥有的。拇指高度自行调整。我需要修复拇指的高度。
我想要实现的目标(固定高度的拇指):
任何关于如何在 Flash 中设置拇指大小的指针将不胜感激。
我正在尝试自定义 Flash 中的内置滚动条组件。具体来说,我需要自定义滚动条的拇指以具有固定的高度和宽度。
这就是我现在所拥有的。拇指高度自行调整。我需要修复拇指的高度。
我想要实现的目标(固定高度的拇指):
任何关于如何在 Flash 中设置拇指大小的指针将不胜感激。
没有简单的方法可以做到这一点,我的意思是 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.height
else 块中的设置。可能的解决方案可以是扩展ScrollPane
并覆盖该configUI
方法 - 并添加您的自定义 CustomScrollPane (扩展 ScrollBar 并覆盖该updateThumb
方法)而不是 created _verticalScrollBar:ScrollBar
。
另一种解决方案是在您的 swf 的主 ApplicationDomain 中用您自己的同名 fl.controls.ScrollPane 替换原始的 fl ScrollPane 类。但要做到这一点,您必须以这样一种方式组织类加载,即您自己的类在 fl 类之前加载,即您必须在外部 swfs 中动态加载所有类。