我已经制作了一个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,我不明白为什么它不起作用。
谢谢,
答案 0 :(得分:1)
尝试升级到KineticJS 4.4
我确认你的矩形在4.0和4.3下有时会丢失 - 事实上,我甚至无法在你的小提琴中旋转(直接移动而不是旋转)。
当我在4.4版中运行相同的代码时:没有丢失的矩形和旋转工作正常。
只是一个侧面问题:您可能希望在旋转后将旋转手柄重新定位在靠近矩形的位置。目前,旋转手柄在旋转后可以远离矩形。