-1

グループとして使用できるいくつかの要素をアプリケーションに作成することを計画しています。たとえば、円、三角形、正方形を作成してグループ化することができます。そのため、グループなどをドラッグアンドドロップできます。また、グループ要素を個別に編集できるようにしたい場合もあります。

このために、グループに対してsetDraggable(false)を呼び出し、すべての子に対してsetDraggable(true)を呼び出して、それらを個別に編集することができます。それらをグループとして扱いたい場合は、グループの形状に対してsetDraggable(true)を呼び出し、グループのすべての子に対してsetDraggable(false)を呼び出すことができます。

この部分はうまくいくと思います。問題はイベント処理です。それについて検索しようとしましたが、グループ化されたオブジェクトでのイベントの動作について話しているものは何も見つかりませんでした。私が気付いた限りでは、グループの子からのイベントがグループからのイベント呼び出しをオーバーライドします。たとえば、グループの要素E1に「onclick」イベントがあり、E1をクリックしたときにグループオブジェクトにも「onclick」イベントがある場合、トリガーされるイベントはE1オブジェクトのイベントだけです。

だから....TL;DR:誰かが、グループ、子、ネストされたグループを使用して、KineticJSでイベントトリガーがどのように機能するかを説明できますか?

編集:

  • http * // jsfiddle * net / Kaze_Senshi / GKFrK/KineticJSのグループ動作をテストするために作成した小さなプロジェクト。最初は、長方形のグループと円のグループが1つずつあり、グループに参加して、画面の左側にあるボタンをクリックして、正方形のグループから各要素を個別に移動できます。これは、テスト目的のためだけに醜いコードを含む非常に単純なページです。

  • https://github.com/wfaria/sketchProject/blob/development/tests/interfaceResourceTest.html 最後に、KineticJSを使用してプロジェクトのグループオブジェクトを操作したいと思います。このため、これらの質問を行っていると思います。この単体テストページを見ると、どのように機能するかを理解できます。詳細については、src / Model/InterfaceResource.jsをご覧ください。

4

1 に答える 1

1

グループとその子がいて、イベントのオンとオフを切り替えたい場合は、次のようにすることができます。

 group.setListening(false); // the group will not listen for events

 groupChild.setListening(true); // the child is listening for any defined events on the child.

また、正しい方向を示すために、お気づきのように、シェイプイベントはグループイベントよりも優先して発生します。両方にonclickがある場合は、互いに干渉しないようにロジックを追加する必要があります。これを行う簡単な方法は、特定の条件に基づいてイベントをオフにする特定のフラグを設定することです。

于 2013-03-25T14:38:21.723 に答える