滚动事件(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 视图。被认领的触控板手势会一直保持在当前节点,直到手势结束。