2013-04-05 35 views
0

我可以在画布上绘制多行;它们被添加到使用drawScene的图层绘制多行并删除单行

dlayerA1.add(line); 
line.getPoints()[0].x = mousePos.x; 
line.getPoints()[0].y = mousePos.y; 
line.getPoints()[1].x = mousePos.x; 
line.getPoints()[1].y = mousePos.y; 
moving = true; 
dlayerA1.drawScene(); 

http://jsfiddle.net/user373721/xzEad/1/

有没有办法删除单行?

回答

0

我分配一个唯一的ID到每个对象,并用于以下操作来DELET它当点击它:

      r = r + 1; 
         var mousePos = stage1.getMousePosition(); 
         rectA1 = new Kinetic.Rect({ 
          x: mousePos.x - rOffset, 
          y: mousePos.y - rOffset, 
          width: 0, 
          height: 0, 
          stroke: 'red', 
          strokeWidth: 4, 
          id:"rectA" + r 
          }); 

         rectA1.setListening(true); 
         myRect1[r] = rectA1; 
         background1.add(myRect1[r]); 
         //start point and end point are the same 
         rectA1.setX(mousePos.x - rOffset); 
         rectA1.setY(mousePos.y - rOffset); 
         rectA1.setWidth(0); 
         rectA1.setHeight(0); 
         moving = true; 

         background1.drawScene(); 
         myRect1[r].on("click", function() { 

          this.remove(); 
         }); 

我的解决方案是基于这个好答案:How to select an object in kinetic.js?

0

目前,你就必须修改点阵列是这样的:

line.getPoints()[0] .splice(指数,1);

由于阵列通过参考修改,修改返回的数组修改点阵列“真实的源” ATTR

+0

感谢埃里克,有一个例子某处我看看。 – hncl 2013-04-06 00:53:01