2012-12-12 39 views
0

这是我需要KineticJS:KineticJS - 组/图像dragable的设置部分

我有一个大的300x300的图像,我希望能够拖动它,但只有当我点击并拖动在上四分之一的图像。如果我试图拖动这个图像的其余部分,我不希望它移动。这可能吗?另外,如果我试图拖动这个图像,我怎么才能让它拖动组中的其余项目呢?

+0

添加可拖动和''dragstart''事件组,检查鼠标的x/y,当他们开始拖动并返回false。 – Shmiddty

回答

0

在这里看到:http://jsfiddle.net/NnD5q/

box.on('mousedown', function(e){ 
    var bX = box.attrs.x, bY = box.attrs.y; 

    // set draggable false if they aren't in our click range 
    // (a 20x20 square in the top left) 
    if (e.x > bX + 20 || e.y > bY + 20) 
     box.setDraggable(false);   
}); 
window.onmouseup = function(e){ 
    box.setDraggable(true); // set draggable true on **window** mouseup. 
}; 

另一种选择是对窗口鼠标松开鼠标按下上创建一个拖动手柄对象,group.setDraggable(true)对于拖动手柄,然后group.setDraggable(false)。第二个选项可能更清洁。