Сохраняйте формы KineticJS внутри холста

Есть ли простой способ убедиться, что ваши фигуры остаются внутри холста при использовании функции перетаскивания из KineticJS?

Стандартно, форма немного покидает холст, пока ваша мышь не коснется границы холста. Я бы хотел, чтобы это была граница формы, а не мышь.

Есть ли способ сделать это?


person Decor    schedule 30.11.2012    source источник


Ответы (1)


Используйте dragBoundFunc, как описано в руководстве по KineticJS< /а>

Вот JS-скрипт

И код:

dragBoundFunc: function(pos) {
    console.log(bbox.getWidth());
    var xBound = stage.getWidth() - bbox.getWidth();
    var yBound = stage.getHeight() - bbox.getHeight();

    // Check X boundries
    if (pos.x > xBound) {
        var newX = xBound;
    } else if (pos.x <= 0) {
        var newX = 0;
    } else {
        var newX = pos.x;
    }

    // Check Y boundries
    if (pos.y > yBound) {
        var newY = yBound;
    } else if (pos.y <= 0) {
        var newY = 0;
    } else {
        var newY = pos.y;
    }

    return {
        x: newX,
        y: newY
    };
}
person nak    schedule 01.12.2012