我在图表上设置了一个窗格手势以使图表水平滚动,但问题是当用户快速移动时,该手势会将图表移动一个非常小的百分比,我怎样才能进行平滑滚动,这样如果用户快速移动,图表动作也很快。
请注意: drawChart() 会将图表滚动到 event.x 像素并重新绘制图表。
这是我的平移手势代码:
private mobileHandleEvent(event: WindowEvent): boolean {
let pos = this._lastPoint = {x: event.pointerPosition.x, y: event.pointerPosition.y};
switch (event.evt.type) {
case TouchEvent.START: {
if (this._checkButton(event) && this._checkHit(event)) {
this._prevPoint = {x: pos.x, y: pos.y};
this._which = event.evt.type === TouchEvent.START ? 1 : event.evt.which;
this._state = GestureState.STARTED;
this.drawChart();
return true;
}
break;
}
case TouchEvent.MOVE: {
let offset = this.moveOffset;
if (this.isActive()) {
offset.x = 1.5 * (pos.x - this._prevPoint.x);
offset.y = 1.5 * (pos.y - this._prevPoint.y);
let minMoveDistance = this.minMoveDistance;
if ((this.horizontalMoveEnabled && Math.abs(offset.x) >= minMoveDistance) ||
(this.verticalMoveEnabled && Math.abs(offset.y) >= minMoveDistance)) {
this._state = GestureState.CONTINUED;
this.drawChart();
}}
return true;
}
break;
}
case TouchEvent.END: {
if (this.isActive()) {
this._state = GestureState.FINISHED;
this.drawChart();
return true;
}
break;
}
}
return false;
}