threejs里继承了Object3D的类都可以加载事件。这些类包含mesh,camera,group等等。
如下:
//给相机添加事件
camera.addEventListener("onCameraChange",this._onCameraChange);
// 相机变化事件
_onCameraChange:function(){
dosomething();
};
//触发事件
if(condition){
camera.dispatchEvent({type:"onCameraChange"});
}
另外,mesh还可以添加鼠标点击划过等事件。这就要用到这个大神写的算法;https://github.com/jasonChen1982/three.interaction.js
用法很简单:(如下添加mesh的点击和鼠标滑过事件)
mesh.on('mouseover', function(ev) {
console.log(ev.data.target.name);
});
mesh.on('click', function(ev) {
console.log(ev.data.target.name);
});
如果觉得长不好维护,可以修改第一个方法。