跳到主要内容

滚动事件(ScrollEvent)

来自鼠标滚轮或触控板的滚动,会传递给 pointerScroll。直接触摸则以指针事件的形式到达。

function pointerScroll(self: ZoomView, event: ScrollEvent)
self.zoom *= math.exp(-event.delta.y * 0.01)
event:hit()
end

字段(Fields)​

id​

指针的唯一标识符。

position​

指针在本地坐标中的位置。

delta​

内容应移动的距离,使用本地坐标。它跟随内容移动(与 ScrollConstraint 一致),因此显示更下方的内容时 y 为负值。

phase​

该事件在其手势中所处的阶段。

precise​

像素级精确的输入源(如触控板)为 true;按刻度移动的鼠标滚轮为 false。

timeStamp​

滚动发生的时间,单位为秒。

构造函数(Constructors)​

new​

new(id: number, position: Vector, delta: Vector, phase: ScrollPhase?, precise: boolean?, timeStamp: number?) -> ScrollEvent

创建一个新的 ScrollEvent。phase 默认为 update,precise 默认为 false,与鼠标滚轮的上报方式一致。

local wheel = ScrollEvent.new(0, Vector.xy(10, 20), Vector.xy(0, -40))
print(wheel.phase, wheel.precise)

方法(Methods)​

hit​

hit() -> ()

认领此次滚动。若不调用,滚动会传递给其后方的对象,例如 ScrollConstraint 视图。被认领的触控板手势会一直保持在当前节点,直到手势结束。

看完还有疑问?进群交流下!
与众多 Rive 创作者、开发者一起交流探讨与答疑解惑。
加入交流群