KineticJS:对克隆的项目进行分组以便拖动它们

时间:2014-04-02 11:17:54

标签: kineticjs

如何对克隆的形状和图像进行分组,以便将它们拖到一起?我将克隆的图像放在克隆的矩形顶部。每次拖动矩形时是否必须创建新的Kinetic.Group?是否有另一种选择让他们拖拽它们而不对它们进行分组?

我使用kineticJS执行拖放任意数量的克隆项目,从一层到另一层,这是我写的代码,直到现在http://jsfiddle.net/GLFxF/34/我不知道如何我应该这样做。

1 个答案:

答案 0 :(得分:1)

Kinetic.Groups是拖动一组形状/图像的最佳方法。

演示:http://jsfiddle.net/m1erickson/7BkR7/

当您拖放一个克隆项目时,可以使用clone.on("dragend"让克隆项目连接到它所放入的任何组(矩形)。

假设所有矩形容器都已添加到containers []数组中。

然后您可以使用此dragend函数将克隆moveTo放入其中的任何容器:

clone.on("dragend",function(){
    var pos=this.getAbsolutePosition();
    var x=pos.x;
    var y=pos.y;
    var hit=-1;
    for(var i=0;i<containers.length;i++){
        var c=containers[i];
        var cx=c.x();
        var cy=c.y();
        if(x>=cx && x<=cx+c.width() && y>=cy && y<=cy+c.height()){
            hit=i;
        }
    }
    if(hit>=0){
        var container=containers[hit];
        this.x(x-container.x());
        this.y(y-container.y());
        this.moveTo(container);
    }else{
        this.x(x);
        this.y(y);
        this.moveTo(layer);
    }
});