我有一个扩展了Spark List的组件,当我使用鼠标滚轮滚动时,它一次滚动太多了。我尝试查找List类和VerticalLayout类中处理鼠标滚轮滚动的处理程序进行覆盖,但是我找不到它。
是否有其他方法可以更改这个问题,或者我错过了什么?
是否有其他方法可以更改这个问题,或者我错过了什么?
鼠标滚轮事件的"delta"属性定义了每次滚动多少行。您可以尝试在MOUSE_WHEEL处理程序(捕获阶段)中更改它。例如,以下代码将逐行滚动:
<code> protected function init(event:FlexEvent):void
{
list.addEventListener(MouseEvent.MOUSE_WHEEL, list_mouseWheelHandler, true);
}
protected function list_mouseWheelHandler(event:MouseEvent):void
{
event.delta = event.delta > 0 ? 1 : -1;
}
</code>
"horizontalLineScrollSize"和"verticalLineScrollSize"属性确定当用户选择滚动条箭头时要滚动多少像素。 "verticalLineScrollSize"属性还控制使用"鼠标滚轮"时的滚动量。默认值为5个像素。 "horizontalPageScrollSize"和"verticalPageScrollSize"属性确定当用户选择"滚动条轨道"时要滚动多少像素。默认值为20个像素。
更多细节:http://livedocs.adobe.com/flex/3/html/help.html?content=containers_intro_4.html