鼠标交互插件threex.domevents介绍
threex.domevents是一个three.js的扩展库,支持3D场景的交互。和我们操作DOM树的事件相似,名称都是一样的。所以使用起来非常方便。另外他也提供了连接操作。单击网格可实现跳转功能。
如果仅仅使用Dom事件,需要引入:
<script src='threex.domevents.js'></script>
如果需要使用链接跳转,还需要引入:
<script src="threex.linkify.js"></script>
不管是使用事件还是跳转,都得创建DomEvents对象:
var domEvents = new THREEx.DomEvents(camera, webGLRenderer.domElement);
THREEx.DomEvents.eventNames是一个包含了所有支持的事件的名称集合。所有我们可以像下面这样输出所有事件操作的日志:
THREEx.DomEvents.eventNames.forEach(function(eventName){ if(eventName === "mousemove") return; domEvents.addEventListener(sphereMesh, eventName, function(event){ var domElement = document.querySelector("#log"); domElement.innerHTML = event.type + "<br/>" + domElement.innerHTML ; }, false); });
我们给sphereMesh网格注册了所有DomEvents支持的事件。由于mousemove触发太频繁,所以忽略了它。
如何使用链接?代码相当简单:
THREEx.Linkify(domEvents, sphereMesh, "http://www.cnblogs.com/w_wanglei");
最后附上domEvents的源代码下载地址:https://github.com/jeromeetienne/threex.domevents。