我正在创建一个包含多个事件处理程序的多边形 - 我可以单击并拖动以手绘,按住shift并单击以捕捉道路,并执行正常点击。最初,我有一个阵列,我推动了这些点。但是,由于事件处理程序是唯一的,因此调试我传递到任何地方并在任何地方修改的数组似乎是不好的形式。
我已经做到这样,多边形路径是一个点阵列数组。当我按住Shift键单击时,它会生成一个点数组,当我单击并拖动时,它会生成一个点数组,然后我将它们推送到数组数组。
但是,我如何将它们连接在一起?我目前无法将一个阵列的端点连接到下一个阵列的开头。因为我正在尝试模块化我的代码,所以我不想将数组的最后一点传递给构成下一个数组的事件监听器,因为这会破坏具有单独数组的目的。
多边形的多条路径上的文档相当薄。
这是我到目前为止所拥有的。
http://jsfiddle.net/skitterm/fn4g5/1/
伪代码:
array C = new Array();
addEventListener for click {
populate array A
C.push(A);
}
addEventListener for shift-click {
populate array B
C.push(B);
}
addEventListener for right-click {
create polygon {
paths: C
}
}
我可以通过按住Shift键点击,或点击,或点击并拖动来创建多边形,但是我不能通过按住Shift键点击其中一侧完成多边形,而通过常规点击创建其余部分。
有什么想法吗?