0

我在图表上设置了一个窗格手势以使图表水平滚动,但问题是当用户快速移动时,该手势会将图表移动一个非常小的百分比,我怎样才能进行平滑滚动,这样如果用户快速移动,图表动作也很快。

请注意: 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;
    }
4

0 回答 0