我正在创建一个带有多个事件处理程序的多边形——我可以单击并拖动以徒手绘制,按住 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-click 完成,其余部分通过正常单击完成。
有任何想法吗?