拖动绑定不适用于kineticjs中已调整大小的图像

时间:2013-11-26 06:05:33

标签: image-processing canvas kineticjs drag image-resizing

我正在使用Kineticjs。我试图在拖动上绑定(dragBoundFunc),如下所示(http://jsfiddle.net/m1erickson/n5xMs):

        dragBoundFunc: function (pos) {
            var X = pos.x;
            var Y = pos.y;
            if (X < minX) {
                X = minX;
            }
            if (X > maxX) {
                X = maxX;
            }
            if (Y < minY) {
                Y = minY;
            }
            if (Y > maxY) {
                Y = maxY;
            }
            return ({
                x: X,
                y: Y
            });
        }
    });

我正在尝试将此方法用于可拖动且可重新调整大小的组http://jsbin.com/iyimuy/125/edit,但我无法使其正常工作。我很乐意听到一些评论。

1 个答案:

答案 0 :(得分:0)

你好像是在思考这个问题。

例如,这里是如何强制执行正确的边界(在伪代码中)。

如果出现以下情况,你已将darth移到了yoda的右侧:

darthRight > yodaRight.  

计算darthRight:

在dragBoundFunc中,pos变量为您提供当前左上角x / y的darth。

darthRight = posX + darthWidth  

计算yodaRight:

yodaRight = yodaX + yodaWidth   

要纠正darths移动到yoda之外:

将darths左侧拉回到yoda内部,直到它在yodaRight内部的完整darthWidth。

posX = yodaRight - darthWidth

完成!

现在重复其他3个边界......