gpt4 book ai didi

apache-flex - 使用鼠标滚轮的 Flex 列表滚动速度

转载 作者:行者123 更新时间:2023-12-02 07:11:57 25 4
gpt4 key购买 nike

我有一个自定义类,它扩展了我用作容器的列表。但是,鼠标滚轮的滚动速度太快了,因为即使您只稍微移动滚轮,它也会滚动负载。我尝试在我的 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 函数。只需重写该函数,更新鼠标事件的 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);
}

}
}

但是,在许多情况下,滚动速度/增量将脱离系统偏好设置,因此这样做可能会导致某些用户出现意外行为。添加处理程序和更新增量失败的原因是此时已经调用了 mouseWheelHandler。

关于apache-flex - 使用鼠标滚轮的 Flex 列表滚动速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5120420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com