KineticJS-删除选定图像

KineticJS-删除选定图像,kineticjs,Kineticjs,我的代码在这里 具体来看: $d('#delete').click(function(){ var toRemove = imageSelected; if(toRemove !== false) { var groups = layer.get('Group'); for(var j=0; j < groups.length; j++) {

我的代码在这里

具体来看:

$d('#delete').click(function(){
        var toRemove = imageSelected;
        if(toRemove !== false)
        {
            var groups = layer.get('Group');
            for(var j=0; j < groups.length; j++)
            {
                var gid = groups[j].getId();

                if(gid == toRemove)
                {           
                    groups[toRemove].destroy();
                    imageSelected = false;
                    layer.clear();
                    deselect();             
                    sources[toRemove] = null;
                    j = groups.length;
                }           
            }
        }       
    }); 
$d('#删除')。单击(函数(){
var toRemove=已选择图像;
如果(toRemove!==false)
{
var groups=layer.get('Group');
对于(var j=0;j
我想做的是: 1) 用户应该能够单击任何图像(即出现锚),然后单击画布下的“删除”链接。然后图像应该消失(我不需要缓存它)

2) 用户应该能够单击画布下的“添加猴子”-单击任何图像(包括新添加的猴子)并将其删除

我认为,一旦我实现了上述内容——我应该更好地理解kinetic的工作原理——现在我感到困惑


非常感谢您的帮助

在我看来,我认为使用名为
selectedNode
的变量并将其指定为您正在选择的实际运动节点,而不是其
id
更容易

selectedGroup=new dynamic.Shape({name:'emptyNode'})

我在init上将selectedGroup命名为
name:'emptyNode'
,然后取消选择,这样您就可以知道何时没有选择节点

现在,将动能对象存储在变量中,您可以轻松地在该节点上调用
destroy()
(因为您不想缓存它)

$d(function() {
  $d('#delete').click(function(){
    if (selectedGroup.getName() !== 'emptyNode') {
        selectedGroup.destroy();
        layer.draw();
    }
  });   
});
工作示例:

注意:我们要销毁该组,因为它包含所有锚和图像


哦,还有,因为您声明了
var层
在您的应用程序范围内,我必须在您的
initStage
函数中删除
var
声明层
。这样,Jquery Ready函数就可以全局访问

您也可以安全地注释掉或删除您的SelecteImage和SelecteImage ID代码。非常感谢-我马上就到了!
$d(function() {
  $d('#delete').click(function(){
    if (selectedGroup.getName() !== 'emptyNode') {
        selectedGroup.destroy();
        layer.draw();
    }
  });   
});