0

我想显示同一场景的多个视图,其中 1 个是完全交互的,另外 2 个是从顶部和右侧显示的,只能缩放。所以我的问题是禁用渲染上的一些用户交互。

一种替代方法是重载其他事件处理程序方法,如果事件不是鼠标滚轮,则强制渲染器的相机保持相同的视图。它可以工作,但并不漂亮(对于程序员和用户来说都不是)。

所以我想改变我的渲染器的“配置”属性。这是我的代码和解释的问题:

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();

你看到问题了吗?“配置”更改应该在新交互器的创建和它的初始化之间完成。但是,如果我没记错的话,你不能创建一个交互器并将其手动设置为一个渲染器,就像“交互器”属性受到保护一样。

我有什么问题吗?任何想法执行它?

4

1 回答 1

0

这是正确的方法

var r1 = new X.renderer('r1');
r1.init();
r1.interactor().config.MOUSEWHEEL_ENABLED = false;
r1.interactor().init();

但你是对的 - 由于拼写错误和缺少导出符号,到目前为止它没有工作。这已在https://github.com/xtk/X/commit/f1f80ebb26020f4b13b797993a9008ae07a50195中修复,现在 可在http://get.goxtk.com/xtk_edge.js中使用。

于 2012-04-30T13:36:58.413 回答