0

cgSceneGraph 1.4.2 についていくつか質問があります

ノードの順序 キャンバス内のノードのインデックスを変更する方法があるのだろうか。複数のノードがある場合、それらを作成する順序は、これらがキャンバスにある順序になりますが、それらの順序を変更する方法があれば、これは素晴らしいことです. これらの方法では、大きなノードは以前のノードをカバーせず、それらにアクセスすることさえできなくなります.

すべてのノードを削除し、それらすべてを異なる順序で再描画することは理にかなっていますか? これはCPUメモリを必要としないでしょうか?

これに対する他のアイデアや解決策はありますか?

キーボードのキープレス キャンバス内でのみキーボードのキープレスをロックする方法はありますか? たとえば、ページ内にキャンバスがあり、フォームも存在する場合があります。フォームを使用していくつかのテキストを挿入すると、キーの押下もキャンバスに渡されます。

私が使用するキー押下イベントをキャッチするには

document.onkeydown = function (event) {
    scope.onKeyDown(event);
};
document.onkeyup = function (event) {
    scope.onKeyUp(event);
};

ノードの回転 ユーザーがサイズ変更/スケーリングするのと同じ方法でノードを回転させる方法はありますか? 修飾子としてキーを使用して、サイズ変更に対するローテーションを有効にすることもできますか?

これらすべての質問を申し訳ありません。ご協力いただき、ありがとうございました。

4

1 に答える 1

0

ここに3つの質問があります:)

最初の 1 つ: cgSceneGraph は、追加された順序でノードをレンダリングします。したがって、z-index を変更するには (フレームワークに z-index はありません)、次の 2 つの方法を使用する必要があります (これは、アプリケーションで使用するものです)。

CGSGNode::detachChild  // will detach the child from its parent without destroy it. To destroy it, use "removeChild" instead

CGSGNode::addChild(childNode); // or "accChildAt(index)"

非常に高速なので、リアルタイムで使用できます。

2 つ目: cgSceneGraph は既にキーボード イベントをキャッチしています (主に複数選択用)。これをオーバーライドしたい場合は、フレームワークで使用されるものとは異なるハンドラー メソッドに名前を付ける必要があります。

3 番目の質問: これは「ネイティブ」機能ではありません。フレームワークを拡張することでいつでも可能ですが (これは非常に拡張可能です)、cgSceneGraph の v2 の一部になります (良い方法での開発:))。フレームワークの V1 では、回転はすでに完全に問題ありませんが、選択したオブジェクトのバウンディング ボックスは (v1 では) 実際の回転を考慮していません。

この助けを願っています

于 2013-02-20T21:54:45.617 に答える