2012-09-17 47 views
0

我有一个有趣的任务。我需要在Kinetic JS中检测到一个形状边界的点击。在这种情况下,该形状是一个多边形,但如果它适用于任何形状,则可获得奖励积分。动力学JS - 检测点击边界形状

我的第一个想法是围绕形状的边界画线,也许不透明度为1,然后使用它们的点击事件来拾取点击。虽然这是PT的一部分,所以我想我会跑过去看看有没有其他想法。

感谢您的帮助!

回答

1

您可以通过将两个形状组合在一起并将它们放在一个组中。第一个形状将有一个边框,第二个没有边框。

 var first_poly = new Kinetic.Polygon({ 
      points: [73, 192, 73, 160, 340, 23, 500, 109, 499, 139, 342, 93], 
      fill: '#00D2FF', 
      stroke: 'black', 
      strokeWidth: 5 
     }); 
     var second_poly = new Kinetic.Polygon({ 
      points: [73, 192, 73, 160, 340, 23, 500, 109, 499, 139, 342, 93], 
      fill: '#00D2FF', 
      stroke: 'black', 
      strokeWidth: 0 
     }); 

     first_poly.on("click",function(){ 
      alert("border clicked"); 
     }) 
     // add the shape to the layer 
     layer.add(first_poly); 
     layer.add(second_poly); 
     stage.add(layer);