jocly
Version:
Board games 3D/2D UI and AI web library
38 lines (32 loc) • 1.52 kB
JavaScript
/********************************************************************************/
// # Patch THREE.Object3D
/********************************************************************************/
// handle noConflit.
THREEx.DomEvent.noConflict = function(){
THREEx.DomEvent.noConflict.symbols.forEach(function(symbol){
THREE.Object3D.prototype[symbol] = THREEx.DomEvent.noConflict.previous[symbol]
})
}
// Backup previous values to restore them later if needed.
THREEx.DomEvent.noConflict.symbols = ['on', 'off', 'addEventListener', 'removeEventListener'];
THREEx.DomEvent.noConflict.previous = {};
THREEx.DomEvent.noConflict.symbols.forEach(function(symbol){
THREEx.DomEvent.noConflict.previous[symbol] = THREE.Object3D.prototype[symbol]
})
// begin the actual patching of THREE.Object3D
// create the global instance of THREEx.DomEvent
//THREE.Object3D._threexDomEvent = new THREEx.DomEvent();
// # wrap mouseevents.bind()
THREE.Object3D.prototype._addEventListener = THREE.Object3D.prototype.addEventListener;
THREE.Object3D.prototype.on =
THREE.Object3D.prototype.addEventListener = function(eventName, callback){
THREE.Object3D._threexDomEvent.bind(this, eventName, callback);
return this;
}
// # wrap mouseevents.unbind()
THREE.Object3D.prototype._removeEventListener = THREE.Object3D.prototype.removeEventListener;
THREE.Object3D.prototype.off =
THREE.Object3D.prototype.removeEventListener = function(eventName, callback){
THREE.Object3D._threexDomEvent.unbind(this, eventName, callback);
return this;
}