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 で rect が時々失われることを確認しました。実際、Fiddle で回転することさえできません (回転の代わりに rect が移動します)。

バージョン 4.4 で同じコードを実行すると、四角形が失われることはなく、回転も正常に機能します。

副次的な問題: 回転後に回転ハンドルを四角形に近づけたい場合があります。現在、回転ハンドルは、回転後に四角形から離れたままにすることができます。

于 2013-03-28T13:01:56.840 に答える