我正在尝试使用 Paper.js
构建图形编辑器我想选择使用选择工具 (Shift +点击或拖动)选择的第一个(第一个)元素一个选择框)。通过hit-testing和选择框通过getIntersection
完成直接点击检测有可能得到这个吗?
我执行FOR循环以获取 Paper.js selectedItems 数组中的所有元素,该数组返回画布上的所有选定项。
我试过这个:
var selected = paper.project.selectedItems;
var firstSelected = selected[0];
但这并不能归还我需要的东西。
上面的代码段提取了一个 array ,它与首先选择的元素无关。 它只是从“最早绘制的路径”开始命令数组中的selectedItems。
我需要的是找出哪个是被选中的第一个元素。
这样做的原因是我想添加到我的编辑器,与功能对齐。
为了获得正确的用户体验,用户必须能够将元素相对于他设置为“参考项目”的另一个元素对齐。因此,我需要知道相对于其他元素选择的第一个元素,以便将其用作“参考项目”。
有什么想法吗?
答案 0 :(得分:1)
Here是我理解你想要选择的实例(没有对齐相对功能)。 这是代码(在SelectPaperJS下)https://c9.io/arthursw/oiio/
在Stylii上制作类似的东西应该不会太难(因为你正在使用它)。
您可以使用数组来跟踪商品的选择顺序。例如,在直接选择工具的mousedown函数中(来自editor.js的第789行),您可以将新选择的元素添加到此数组(第800行)。使用矩形选择工具进行选择时也是如此。