同じシーンの複数のビューを表示したいと思います。そのうちの 1 つは完全にインタラクティブで、他の 2 つは上と右から、ズームのみ可能です。したがって、私の問題は、レンダリングでのユーザー操作を無効にすることです。
1 つの代替手段は、イベントがマウス ホイールでない場合、レンダラーのカメラが同じビューを維持するように強制して、他のイベント ハンドラー メソッドをオーバーロードすることです。動作しますが、きれいではありません (プログラマーにとってもユーザーにとっても)。
そこで、レンダラーの「config」属性を変更したいと思います。ここに私のコードと説明されている問題があります:
var r1 = new X.renderer('r1'); // r1 is created, but its "interactor" attribute is null, see visualization>renderer.js
r1.interactor().config.MOUSEWHEEL_ENABLED = false; // DO NOT work cause the "interactor" attribute of r1 is null
r1.init(); // r1 is initialized : it creates a new interactor, calls interactor.init(), and puts the new interactor in the "interactor" attribute of r1, , see visualization>renderer.js
r1.interactor().config.MOUSEWHEEL_ENABLED = false; // DO NOT work because the interactor.init() has already generated all the event handler methods and associated them to the listeners, see io>interactor.js
次のことも試しましたが、結果としてレンダラーが黒/空になります:
var r1 = new X.renderer('r1');
r1.init();
r1.interactor().config.MOUSEWHEEL_ENABLED = false;
r1.interactor().init();
問題が見えますか? 「構成」の変更は、新しいインタラクターの作成とその初期化の間に行う必要があります。しかし、私が間違っていなければ、「interactor」属性が保護されているように、interactor を作成してレンダラーに手動で設定することはできません。
私は何か間違っていましたか?それを実行するアイデアはありますか?