2014-11-08 38 views
1

我正在使用Three.js的應用程序。我已經包含了[夢幻般的] OribitalControls.js來幫助進行場景導航。它具有以下代碼其功能附加到鼠標滾輪:如果我有兩個鼠標輪聽衆,我該如何確保其中一個接一個?

this.domElement.addEventListener('mousewheel', onMouseWheel, false); 
this.domElement.addEventListener('DOMMouseScroll', onMouseWheel, false); // firefox 

別處在我的應用程序(在一個單獨的文件),我有我自己的鼠標滾輪偵聽器。我把它連接到事件是這樣的:

this.canvas.onmousewheel = this.onMouseWheel.bind(this); 

的問題是,我的鼠標滾輪功能告訴渲染渲染幀,因爲東西在場景已經變化。然後,OrbitalControls鼠標滾輪功能在框架重新渲染後更改相機的位置。下一次我改變某些東西時,我會遇到一個煩人的'縮放',因爲我的聽衆沒有從OrbitalControls監聽器中找到最後一點變化。

有沒有一種方法可以強制我的onMouseWheel()函數始終走到最後?

編輯:由於應用程序的架構,OrbitalControls不知道任何關於我的其他鼠標滾輪功能。另外,我的鼠標滾輪功能不能對OrbitalControls的實現做任何假設。

回答

0

js和jquery都是同步的。你的目標可以通過回調函數實現。在完成第一個函數後調用回調函數。谷歌回調函數,你會發現很多的例子

+1

你能更具體嗎?回調函數在哪裏?誰會打電話給他? – Justin 2014-11-08 15:01:11

+0

$(selector).hide(speed,callback);在這裏看到這是一個例子,第一個隱藏函數將在選擇器上執行,並且在hide函數被強制(spee是hide的參數)之後調用函數被調用。嘗試使用這個。由於我從手機上網,我無法解析你的代碼。請嘗試我的示例並嘗試實施 – 2014-11-08 15:09:59

相關問題