2012-10-06 15 views
14

現在、KineticJSを含むプロジェクトを進めています。KineticJSを使用してレイヤーからオブジェクトを削除する

シェイプを常に動的に作成および削除する必要がありますが、シェイプの仕方を理解できないようです。私はこれをやろうとしています:

$ myLayer.remove(myShape) 

これはほとんどの投稿が推奨しているようです。しかし、ドキュメンテーションによると、レイヤーからレイヤーが削除され、レイヤーからシェイプは削除されません。これをプロジェクトで試してみると、実際にステージからレイヤーが削除されます。

何か間違っているのですか、レイヤーからシェイプを削除する方法がありますか?

+4

のプロトタイプを使用することができますが、運動JSコードのいくつかを読んだ後。 myShape.remove()を実行すると、シェイプがレイヤーから削除されることがわかりました。感謝! – user1724623

+0

ありがとう!有用な情報 – tetris11

答えて

16

便利な機能が2つあります。

  • childContainer.remove()は、その親からchildContainerを削除します。
  • parentContainer.removeChildren()は、このコンテナからすべての子を削除します。

:これはシェイプにも適用できます。レイヤーを再描画するだけです。

myShape.remove(); 
myLayer.draw(); 
+1

おやすみ、私はちょうどこれを知りたい!レイヤーを再描画する必要がないことが判明しました。すぐに削除されたレイヤーを削除した後にレイヤーを再描画する必要があります。 – luschn

+0

もう一度復元するには? –

+0

@MahdiAlkhatibまだ子への参照がある場合はレイヤー/コンテナに単に追加してください – BenMQ

2

Kinetic 4.0と最新バージョンの間のどこかで、remove(子)が動作を停止しました。 removeChild(子)も機能しません。

この問題は、child.remove()を使用して解決しました。

0

Uは良い方法があれば、私は知らない運動機能

Kinetic.Node.prototype.remove.call(removed_object);

baselayer.draw();

関連する問題