создайте eventHandler для contextmenu на указанном c элементе canvas с paperjs - PullRequest
1 голос
/ 03 мая 2020

Я создал холст с некоторыми path элементами, используя paperjs. для каждого элемента я хотел бы реализовать eventHandler для contextmenu. paperjs поддерживает события мыши , но не поддерживает onContextMenu.

, вот как я могу добавить onClick обработчик событий:

function addOnClick(clickArea) {
  //clickArea is path object
  clickArea.onClick = (e) => {console.log("my on click handler!"}
}

как я могу добавить onContextMenu?

1 Ответ

1 голос
/ 03 мая 2020

Действительно, это не встроенная функция Paper. js, но вы можете обойти это, воспользовавшись недокументированным свойством MouseEvent.event. Это фактически исходное событие, перехваченное Paper. js, так что вы можете использовать его, чтобы определить, какая кнопка мыши была нажата, и соответствующим образом адаптировать вашу логику c.
Вот эскиз , демонстрирующий обходной путь .

const circle = new Path.Circle({
    center: view.center,
    radius: 50,
    fillColor: 'orange'
});

circle.onClick = (event) => {
    if (event.event.button > 0) {
        onRightButtonClick();
    } else {
        onLeftButtonClick();
    }
};

function onLeftButtonClick() {
    console.log('left button clicked');
}

function onRightButtonClick() {
    console.log('right button clicked');
}
...