通过点击和拖动创建矩形时,我遇到了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)
因为我偶然发现了类似的问题:
这应该用Kinetic 5来解决;这里,相应的方法包括明确检查(先前undefined
)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行开始)