事件类型
目前BindingX
支持四种能力。每一种能力都对应一个EventType
,在进行bind
的时候,选择不同的EventType
即可。
EventType | 说明 |
---|---|
pan | 监听手势的pan事件 |
timing | 监听时间变化,用来实现动画 |
scroll | 监听滚动容器的onScroll事件 |
orientation | 监听设备方向变化,与web DeviceOrientation 一致 |
每一种EventType
都提供了一些预置变量
,通过让预置变量参与表达式计算,最终可以对视图状态进行修改。同时,每一种EventType
都会有若干回调,通过回调函数,可以对相关状态进行同步。 下面详细介绍每种EventType
的预置变量和事件回调。
pan 手势能力
预置变量
x: pan手势过程中,横向偏移量。即(当前手指位置-手指按下位置),下同。
y: pan手势过程中,纵向偏移量。
回调事件
有四个时机会触发回调事件。分别是手势开始、手势结束、手势过程中触发边界条件、手势取消。每一个回调事件都会携带当前的state和deltaX/deltaY。下面是具体返回值。state:
start: 手势开始。
end: 手势结束。
cancel: 手势取消。
exit: 手势过程中触发边界条件。
deltaX: 横向偏移量
deltaY: 纵向偏移量
timing 动画能力
预置变量
t: 时间,单位是ms。从0开始。
回调事件
有三个事件会触发回调事件。分别是动画开始、动画结束、动画过程中触发边界条件。每一个回调事件都会携带当前的state和t值。下面是具体返回值。
state:
start: 动画开始。调用
bind
方法后会触发。end: 动画结束。调用
unbind
方法后会触发。exit: 动画过程中触发边界条件。
t: 当前流逝的时间。
scroll 滚动监听能力
预置变量
x: 滚动容器横向的绝对偏移量,即
contentOffset.X
。y: 滚动容器纵向的绝对偏移量,即
contentOffsetY
。dx: 滚动容器相邻两次
onScroll
事件的横向偏移量差值(当前值-上一次值)。根据此变量可判断滚动方向。dy: 滚动容器相邻两次
onScroll
事件的纵向偏移量差值。根据此变量可判断滚动方。tdx: 滚动容器距离最近一次"拐点"的横向偏移量。
tdy: 滚动容器距离最近一次"拐点"的纵向偏移量。
"拐点"定义: 滚动方向发生变化时的点。
回调事件
有三个事件会触发回调事件。分别是开始绑定、结束绑定、绑定过程中触发边界条件。每一个回调事件都会携带当前的state、横向和纵向的绝对偏移量。下面是具体返回值。
state:
start: 开始绑定。调用
bind
方法后会触发。end: 结束绑定。调用
unbind
方法后会触发。exit: 绑定过程中触发边界条件。
x: 滚动容器横向的绝对偏移量,即
contentOffset
。y: 滚动容器纵向的绝对偏移量。
orientation 设备方向监听能力
与w3c定义的DeviceOrientation一致,提供设备方向变化的监听能力。
预置变量
* x: alpha和gamma发生角度变化在动画元素上的水平位移(范围-90,90)
y: beta角度变化时在动画元素上的垂直位移(范围-90,90)
alpha: 以z方向为轴心的旋转角度,取值范围为0到360(不等于360)。
beta: 以x方向为轴心的旋转角度,取值范围为-180到180(不等于180)。
gamma: 以y方向为轴心的旋转角度,取值范围为-90到90(不等于90)。
dalpha: 当前alpha值与起始alpha值之间的偏移值。
dbeta: 当前beta值与起始beta值之间的偏移值。
dgamma: 当前gamma值与起始gamma值之间的偏移值。
回调事件
有三个事件会触发回调事件。分别是开始绑定、结束绑定、绑定过程中触发边界条件。每一个回调事件都会携带当前的state、alpha、beta、gamma。下面是具体返回值。
state:
start: 开始绑定。调用
bind
方法后会触发。end: 结束绑定。调用
unbind
方法后会触发。exit: 绑定过程中触发边界条件。
alpha: 以z方向为轴心的旋转角度,取值范围为0到360(不等于360)。
beta: 以x方向为轴心的旋转角度,取值范围为-180到180(不等于180)。
gamma: 以y方向为轴心的旋转角度,取值范围为-90到90(不等于90)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论