Почему kineticJS не может перемещать работу одним касанием или мышью?

Мне нужно переместить эту группу "ящиков", касаясь или перемещая мышь внутри белой части экрана.

    <script defer="defer">
    var stage = new Kinetic.Stage({
        container: 'fullscreenDiv',
        width: 1180,
        height: 664
    });

    var layer = new Kinetic.Layer();

    var gamepart = new Kinetic.Rect({
        x: 0,
        y: 0,
        width: 1180,
        height: 500,
        stroke: 'black',
        strokeWidth: 4
    });

    var statuspart = new Kinetic.Rect({
        x: 0,
        y: 500,
        width: 1180,
        height: 164,
        fill: 'blue',
        stroke: 'black',
        strokeWidth: 4
    });

    var group = new Kinetic.Group({
        draggable: true,
        dragBoundFunc: function(pos) {
            return {
                x: pos.x,
                y: this.getAbsolutePosition().y
            }
        }
    });


    window.addEventListener('keydown', function(e) {
        if (e.keyCode == 37) //Left Arrow Key
            moveBoxes(-10);
        if (e.keyCode == 39) //Right Arrow Key
            moveBoxes(10);
        stage.draw();
    });

    function moveBoxes(pixels)
    {
        group.x(group.x() + pixels);
        stage.draw();
    }

    var oldPos = null;
    var touchPos = null;
    gamepart.on('touchmove mousemove', moving(stage.getPointerPosition()));


    function moving(mousePos){
        if(!oldPos)
            oldPos = stage.getPointerPosition();
        touchPos = mousePos;
        var x = touchPos.x - oldPos.x;
        moveBoxes(x);
    }
</script>

Группа содержит ящики, которые я добавил. Он работает нормально, чтобы двигаться с помощью клавиш-стрелок, и страницу можно найти на веб-странице

1 ответ

Я думаю, что вы хотите использовать function за 'touchmove mousemove' события, а не результат функции.

gamepart.on('touchmove mousemove', function() {
    moving(stage.getPointerPosition())
});
Другие вопросы по тегам