我有一个扩展Spark列表的组件,当我使用鼠标滚轮滚动时,它会一次滚动太多。我试图在List类和VerticalLayout类中寻找处理鼠标滚轮滚动的处理程序来覆盖,但我找不到它。
还有另一种方法我应该改变这种情况,还是我错过了什么?
答案 0 :(得分:11)
MouseEvent.MOUSE_WHEEL的“delta”属性定义了一次滚动滚动的行数。您可以尝试在MOUSE_WHEEL处理程序中更改它(在捕获阶段)。例如,以下代码将逐行滚动:
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;
}
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;
}
答案 1 :(得分:0)
“horizontalLineScrollSize”和“verticalLineScrollSize”属性确定用户选择滚动条箭头时要滚动的像素数。 “verticalLineScrollSize”属性还控制使用“鼠标滚轮”时的滚动量。默认值为5像素。 “horizontalPageScrollSize”和“verticalPageScrollSize”属性确定当用户选择“滚动条轨道”时要滚动的像素数。默认值为20像素。
更多详情:http://livedocs.adobe.com/flex/3/html/help.html?content=containers_intro_4.html