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 is undefined”。重要提示:如果您在我创建矩形的位置删除“stroke”和“strokeWidth”,它就可以正常工作。这是一个错误,还是我做错了什么?

4

1 回答 1

0

因为我偶然发现了一个类似的问题:

这应该用 Kinetic 5 修复;undefined在这里,相应的方法包括对 (previously )的显式检查clickStartShape

...

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

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

...

(从非最小化 Kinetic 5.0.1 中的第 9040 行开始)

于 2014-03-03T10:54:42.743 回答