我正在使用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,但我无法使其正常工作。我很乐意听到一些评论。
答案 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个边界......