PaperJS: события перехватываются, когда я нахожусь за пределами холста

Я работаю над инструментом для рисования на холсте с использованием фреймворка Paper.js.

У меня возникла проблема с использованием iPad. Когда я рисую одним пальцем, это работает. Когда я рисую двумя пальцами, один на холсте, а другой вне холста, событие второго пальца перехватывается событием onMouseDrag, и это наносит некоторый штрих от первого пальца ко второму пальцу, что не очень хорошо для меня. .

Пример:

введите здесь описание изображения

Сначала я начинаю рисовать одним пальцем. После я вывожу второй палец за пределы холста и продолжаю двигать первым пальцем. Вот что происходит.

У вас есть идея избежать события, когда я нахожусь за пределами холста?

Спасибо.


person alexmngn    schedule 12.02.2013    source источник
comment
Но вы хотите, чтобы это произошло, если второй палец находится внутри холста?   -  person Bergi    schedule 13.02.2013
comment
Нет, я просто хочу только один палец. Но сейчас я не понимаю, почему обнаруживается вторая фигура, потому что она находится за пределами холста. Когда я кладу два пальца на холст, рисует только один палец. Это то, что я хочу, чтобы второй палец был снаружи холста, но я получил это.   -  person alexmngn    schedule 13.02.2013
comment
@alexmngn Вы нашли решение этой проблемы? Я также сталкиваюсь с этой проблемой.   -  person Ankit Gupta    schedule 26.03.2016
comment
Я сталкиваюсь с той же проблемой даже с последней версией paper.js. Вы нашли решение?   -  person Agnosco    schedule 14.12.2017


Ответы (2)


Если вы не хотите, чтобы палец снаружи был обнаружен, ограничьте цель своим холстом.

 var canvasElement = document.getElementById('canvasId') //or element
    tool.onMouseDrag = function(event) {
           if (event.event.target === canvasElement) { //my target canvas was nested like this
               path.add(event.point);
               path.smooth();
           }
    }
person Agnosco    schedule 05.01.2018

Ну, вы можете протестировать event.point.isInside(view.bounds). Это, скорее всего, убьет вашу производительность, если вы проверите ее во время рисования, но вы можете отсеять точки после того, как закончите.

person Alex Blackwood    schedule 12.02.2013
comment
Нет! потому что рисовать от первого пальца до границы холста... Я ищу решение, чтобы отключить обнаружение второго пальца. - person alexmngn; 13.02.2013