kinetic js:dragBoundFunc属性无法正常工作

时间:2013-11-12 09:13:16

标签: javascript canvas kineticjs

我使用dragBoundFunc对动能js有一个令人不安的问题。

我在选择器组上定义了dragBoundFunc,它完美地不允许绿色矩形上的组溢出。错误的情况如下:

1 - 拖动锚点以调整选择器矩形的大小,尝试将锚点拖到绿色矩形外。它似乎没有超越界限。

2 - 现在将选择器矩形移动到边缘以检查边界。你会看到,好像绿色矩形的位置以某种方式偏离其原始位置。

我该如何解决这种奇怪的行为?有什么想法吗?

Here是小提琴。

1 个答案:

答案 0 :(得分:0)

因为rect和anchors相对于组放置,所以你应该在拖动后移动它们。我认为最好的方法是将左上角和矩形坐标保持为组中的{0,0}。

group.on("dragend",function(){
    var rect = group.get('#rectangle')[0];
    var pos = rect.getPosition();
    var dx = pos.x;
    var dy = pos.y;
    group.children.each(function(child){
        child.move(-dx, -dy);
    });
    group.setPosition({
        x : pos.x + group.getPosition().x,
        y : pos.y + group.getPosition().y
    });
    layer.draw();
});

http://jsfiddle.net/lavrton/TfgAV/1/