旋转变换后,Kineticjs无法找到我的对象

时间:2013-03-28 09:57:19

标签: html5-canvas kineticjs

我已经制作了一个jsFiddle:http://jsfiddle.net/mFxhS/1/但奇怪的是效果不好但仍然可以看到整个代码。

但是我已经做了一些console.log并且他确实知道标识符,但仍然使用layer.get('#group'+i)[0]找不到它们。

以下第126行:

console.log(layer.getChildren());
console.log(i);
console.log(this.getId());
console.log(stage.get('#group'+i)[0].getId());
你通常得到:

[Kinetic.Rect, Kinetic.Rect, Kinetic.Group]
0 
group0 
group0 

但是当我旋转物体时,我得到了:

[Kinetic.Rect, Kinetic.Rect, Kinetic.Group]
0 
group0 
Uncaught TypeError: Cannot call method 'getId' of undefined 

这怎么可能发生?如果我查看第一个控制台行,那么仍然有相同的对象具有相同的_ID en和相同的属性ID。

对于破坏的jsFiddle,我不明白为什么它不起作用。

谢谢,

1 个答案:

答案 0 :(得分:1)

尝试升级到KineticJS 4.4

我确认你的矩形在4.0和4.3下有时会丢失 - 事实上,我甚至无法在你的小提琴中旋转(直接移动而不是旋转)。

当我在4.4版中运行相同的代码时:没有丢失的矩形和旋转工作正常。

只是一个侧面问题:您可能希望在旋转后将旋转手柄重新定位在靠近矩形的位置。目前,旋转手柄在旋转后可以远离矩形。