2013-01-15 35 views
1

嗨,我正在使用kineticjs,我想知道如何将形状拖放到指定的类画布中。所以,如果我有同一班的5个画布,这是我可以把我的形状放进去的地方。如果它没有在这些画布中掉落,它就会回到原来的位置!我现在唯一的代码就是我创建的形状。如何将形状拖放到指定的类画布中

var stage = new Kinetic.Stage({ 
    container: 'container', 
    width: 965, 
    height: 200 
    }); 

    var layer = new Kinetic.Layer();  
    var poly = new Kinetic.Rect({ 
    x: 75, 
    y: 75, 
    width: 100, 
    height: 50, 
    fill: '#00D2FF', 
    stroke: 'white', 
    strokeWidth: 4, 
    draggable: true 
    }); 

    // add the shape to the layer 
    layer.add(poly); 

    // add the layer to the stage 
    stage.add(layer); 

回答

1

kineticJS具有

.moveTo(); // ( node.moveTo(container); ) 

方法。例如:

poly.moveTo(stage); 

,或者如果你有多个像画布阶段1,阶段2,stage3的:

poly.moveTo(stage1); poly.moveTo(stage2); poly.moveTo(stage3); 

,你还需要创建一个监听器,它返回一个容器上鼠标坐标。因此,当您执行'mousemove'或'touchmove'时,您可以确定您所在的“容器/舞台”。如果您位于有效的容器中,请将其移至该容器。

我个人认为这将是更容易地创建一个阶段,它分成几部分,并进行了固定大小的那些部分层,这样一来,你可以这样做:

var coordinates = stage.getUserPosition(); 

,并用它来确定将对象放入哪个图层(图层是容器的类型)

+0

让我知道这是否帮助您 – SoluableNonagon