Paper.js - 从selectedItems获取第一个“选定项目”

时间:2014-02-28 21:07:15

标签: javascript canvas paperjs

我正在尝试使用 Paper.js

构建图形编辑器

我想选择使用选择工具 (Shift +点击或拖动)选择的第一个(第一个)元素一个选择框)。通过hit-testing和选择框通过getIntersection

完成直接点击检测
  • 如果 Shift +单击,则第一个选定元素。使用HitResult
  • 找到了单击的元素
  • 如果 selectionBox,选择框的first intersection? 结果。

有可能得到这个吗?

我执行FOR循环以获取 Paper.js selectedItems 数组中的所有元素,该数组返回画布上的所有选定项。

我试过这个:

var selected = paper.project.selectedItems;
var firstSelected = selected[0];

但这并不能归还我需要的东西。

上面的代码段提取了一个 array ,它与首先选择的元素无关。 它只是从“最早绘制的路径”开始命令数组中的selectedItems

我需要的是找出哪个是被选中的第一个元素。

这样做的原因是我想添加到我的编辑器,与功能对齐。

为了获得正确的用户体验,用户必须能够将元素相对于他设置为“参考项目”的另一个元素对齐。因此,我需要知道相对于其他元素选择的第一个元素,以便将其用作“参考项目”。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Here是我理解你想要选择的实例(没有对齐相对功能)。 这是代码(在SelectPaperJS下)https://c9.io/arthursw/oiio/

Stylii上制作类似的东西应该不会太难(因为你正在使用它)。

您可以使用数组来跟踪商品的选择顺序。例如,在直接选择工具的mousedown函数中(来自editor.js的第789行),您可以将新选择的元素添加到此数组(第800行)。使用矩形选择工具进行选择时也是如此。