Canvas KineticJS - ошибка, когда я отпускаю мышь выше формы

0

У меня возникают проблемы с Kineticjs при создании прямоугольника, щелкая и перетаскивая.

$('#my-canvas').mousedown(function() {

    // Create rectangle
    // Add rectangle to layer
    // Draw layer
});

// Dragging
$('#my-canvas').mousemove(function() {
    // Update rectangles size/position so that it matches the current mouse position
    // Draw layer
});

Затем, когда я отпускаю (mouseup), я получаю следующую ошибку:

Uncaught TypeError: Cannot read property '_id' of undefined
Kinetic.Util.addMethods._mouseup
(anonymous function)

Если я убеждаюсь, что мышь не на прямоугольнике при ее освобождении, я не получаю ошибку. Но поскольку я использую мышь, чтобы вытащить прямоугольник, позиция мыши будет находиться в конечной позиции прямоугольников.

Я искал и искал безрезультатно.

Заранее спасибо.

ОБНОВИТЬ

Вот скрипка, показывающая, что я имею в виду: http://jsfiddle.net/DfsFL/1/

Chrome сообщает об ошибке, что я опубликовал несколько абзацев выше, FireFox дает "TypeError: this.clickStartShape не определено". Важное примечание. Если вы удалите "stroke" и "strokeWidth", где я создаю прямоугольник, он работает отлично. Это ошибка, или я делаю что-то неправильно?

  • 0
    Нет ошибок выше, поэтому нам нужно больше кода, чтобы помочь;)
  • 0
    Похоже, ошибка в том, что вы делаете внутри функции mousedown и mousemove, и мы не можем увидеть этот код atm: D ...
Показать ещё 1 комментарий
Теги:
canvas
kineticjs

1 ответ

0

Поскольку я просто наткнулся на аналогичную проблему:

Это должно быть исправлено с помощью Kinetic 5; здесь соответствующий метод включает явную проверку для (ранее undefined) clickStartShape.

...

if(Kinetic.listenClickTap && clickStartShape && clickStartShape._id === shape._id) {
    shape._fireAndBubble(CLICK, evt);

    if(fireDblClick) {
        shape._fireAndBubble(DBL_CLICK, evt);
    }
}

...

(Начиная с линии 9040 в не минимизированной Kinetic 5.0.1)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню