javascript - 如何从PaperJS中的CompoundPath中识别鼠标事件的目标子路径?

标签 javascript paperjs

我将“mousedown”事件监听器添加到CompoundPath(而不是它的子级)。但我需要知道事件发生在哪个 child 身上。事件对象的“target”属性返回CompoundPath。那么,解决办法是什么?

最佳答案

解决方案主要取决于您的具体用例。
但解决此问题的一种通用方法可能是在每个 CompoundPath 子项的事件点处进行 HitTest ,并推断出哪个子项触发了该事件。
这是sketch演示解决方案。

const circle1 = new Path.Circle({
    center: view.center - 50,
    radius: 50
});

const circle2 = new Path.Circle({
    center: view.center + 50,
    radius: 50
});

const compoundPath = new CompoundPath({
    children: [circle1, circle2],
    fillColor: 'orange',
    onMouseDown: event => {
        if (circle1.hitTest(event.point)) {
            alert('circle 1 clicked');
        } else if (circle2.hitTest(event.point)) {
            alert('circle 2 clicked');
        }
    }
});

关于javascript - 如何从PaperJS中的CompoundPath中识别鼠标事件的目标子路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58816534/

相关文章:

javascript - Rafael.js 引用错误消息

javascript - 我的菜单下拉菜单上的 Jquery 打嗝

JavaScript 多重警报提示

javascript - 同时执行的函数相互干扰 - 这里是 : interfering paperScopes

javascript - 将复杂的 SVG 文件与 paper.js 结合起来

javascript - 是否可以监听另一个 .js 文件中的函数是否被触发

html - 如何构建 AngularJS 和 PaperJS 项目

javascript - 即使指针事件设置为无,也使元素可点击

javascript - 避免重复州名

javascript - Paper.js 上的触发工具事件