更改交互器的“config”属性以禁用某些用户事件

时间:2012-04-30 07:55:10

标签: xtk

我希望显示同一场景的多个视图,其中一个是完全互动的,另外两个来自顶部和右边,只能进行缩放。所以我的问题是在渲染上禁用一些用户交互。

一种替代方法是重载其他事件处理程序方法,如果事件不是鼠标滚轮,则强制渲染器的摄像机保持相同的视图。它有效,但它不漂亮(既不是程序员也不是用户)。

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

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

你看到了这个问题吗? '配置'应该在创建新的交互器和初始化之间进行更改。但是,如果我没有弄错的话,你就不能创建一个交互器并将它设置为一个渲染器,就像#34; interctor"属性受到保护。

我有什么不对吗?有没有想过要执行它?

1 个答案:

答案 0 :(得分: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中找到。