Canvas KineticJS - 当我将鼠标释放到形状上方时出错

时间:2013-10-02 20:51:55

标签: javascript jquery canvas kineticjs

通过点击和拖动创建矩形时,我遇到了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'我创建矩形的地方就可以了。这是一个错误,还是我做错了什么?

1 个答案:

答案 0 :(得分:0)

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

这应该用Kinetic 5来解决;这里,相应的方法包括明确检查(先前undefinedclickStartShape

...

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

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

...

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