在纸张js中,我创建了一个复合路径,现在我想在其上实现拖放。复合路径有两个孩子(两个圆圈)。 问题在于:当我将鼠标事件附加到复合路径(使用hittest获取整个路径),然后单击它时,我只获得第一个子路径的引用。如果我点击第二个子路径,则hittest返回undefined,而我想获得复合路径。
有什么想法吗? 感谢。
Francesco R。
答案 0 :(得分:0)
我遇到了同样的问题,但很少有办法让它发挥作用。
我假设您使用Tool。如果是这样,您可以尝试使用ToolEvent item
对象
mousedown: function (event) {
if (event.item) {
// event.item is what you need
}
},
如果您知道要测试的项目是什么 - 例如,您想检查用户是否点击了某个特定项目,则可以从此项目中调用hitTest()
示例:
mousedown: function (event) {
var hit = yourItem.hitTest(event.point, { tolerance: 10 });
if (hit) {
// now you can use hit.item or yourItem ('cos you know the item)
}
},
您可以尝试hitTest options。在那里,您可以指定您要查找的项目类别:
options.class :仅重新测试某个项目类及其子类:组,图层,路径, CompoundPath , Shape , Raster , PlacedSymbol , PointText ,等
告诉我这是否有帮助或提供一些测试用例。您可以创建paperscript sketch here并在运行草图后向我们提供您在地址栏中的链接。
编辑:其实我已经为你创建了一个草图,展示了这些方法:look here