У меня возникают проблемы с 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", где я создаю прямоугольник, он работает отлично. Это ошибка, или я делаю что-то неправильно?
Поскольку я просто наткнулся на аналогичную проблему:
Это должно быть исправлено с помощью 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)