Flex列表滚动速度与鼠标滚轮
发布时间:2020-12-15 02:14:30 所属栏目:百科 来源:网络整理
导读:我有一个自定义类,它扩展了我用作容器的List.但是,鼠标滚轮上的滚动速度太快,因为即使您仅稍微移动滚轮,它也会滚动加载.我尝试在我的列表中为MouseEvent.MOUSE_WHEEL添加一个事件监听器并设置event.delta的值,但这没有任何效果.有谁知道我怎么能让它变慢?
我有一个自定义类,它扩展了我用作容器的List.但是,鼠标滚轮上的滚动速度太快,因为即使您仅稍微移动滚轮,它也会滚动加载.我尝试在我的列表中为MouseEvent.MOUSE_WHEEL添加一个事件监听器并设置event.delta的值,但这没有任何效果.有谁知道我怎么能让它变慢?
我的自定义类没什么特别的,我只是创建了它,所以我可以为不同的项类型设置不同的itemRenders.看起来像: public class MultipleRenderersList extends List { override public function createItemRenderer(data:Object):IListItemRenderer { if (data is IRenderable) { return data.getDiaryRenderer(); } else if (data is Array) { if (data.length > 0) { if (data[0] is IRenderable) { return data[0].getDiaryRenderer(data); } } } return null; } } 解决方法
List类有一个mouseWheelHandler函数,您可以覆盖它.只需覆盖该函数,更新mouseevent的delta属性,然后调用super.此示例将对增量进行四分之一,从而大幅降低速度:
package { import flash.events.Event; import flash.events.MouseEvent; import mx.controls.Alert; import mx.controls.List; public class MyList extends List { override protected function mouseWheelHandler(event:MouseEvent):void { event.delta = event.delta/4; super.mouseWheelHandler(event); } } } 但是,在许多情况下,滚动速度/增量将取决于系统首选项,因此这样做可能会导致某些用户出现意外行为.添加处理程序和更新delta失败的原因是此时已经调用了mouseWheelHandler. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |