2012-04-30 56 views
0

我想要顯示同一場景的幾個視圖,其中1個完全交互,另外2個從頂部和右側只能縮放。所以我的問題是禁用渲染上的一些用戶交互。更改交互器的'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(); 

你看到的問題? 「配置」更改應該在創建新的交互器和初始化之間完成。但是,如果我沒有弄錯,就不能創建交互器並將其設置爲像「交互器」屬性受保護的渲染器。

我有什麼問題嗎?任何想法執行它?

回答

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

+0

是的,這就是我在閱讀代碼(組織得非常好)時所認爲的,謝謝! – Ricola3D

相關問題