cc.Class({
    extends: cc.Component,

    properties: {

        content: cc.Node,

        _lastLocation: null,
    },

    onLoad() {
        this.node.on(cc.Node.EventType.TOUCH_MOVE, (event) => {

            if (this._lastLocation === null) {
                this._lastLocation = event.getStartLocation();
            }

            let currentLocation = event.getLocation();

            let moveY = currentLocation.y - this._lastLocation.y;
            let moveX = currentLocation.x - this._lastLocation.x;

            let sin = moveY / moveX;
            if (sin >= 1 || sin <= -1) {
                let durationY = currentLocation.y - this._lastLocation.y;
                this.content.y = this.content.y + durationY;

                if (this.content.y <= this.node.height / 2) {
                    this.content.y = this.node.height / 2;
                } else if (this.content.y >= this.content.height - this.node.height / 2) {
                    this.content.y = this.content.height - this.node.height / 2;
                }

                this._lastLocation = currentLocation;
            }
        }, this);

        this.node.on(cc.Node.EventType.TOUCH_END, (event) => {
            this._lastLocation = null;
        });

        this.node.on(cc.Node.EventType.TOUCH_CANCEL, (event) => {
            this._lastLocation = null;
        });
    },

    start() {

    },

    // update (dt) {},
});
