0

我制作了一个 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,我不明白为什么它不起作用。

谢谢,

4

1 回答 1

1

尝试升级到 KineticJS 4.4

我确认你的矩形有时会在 4.0 和 4.3 下丢失——事实上,我什至不能在你的 Fiddle 中旋转(矩形移动而不是旋转)。

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

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

于 2013-03-28T13:01:56.840 回答