【问题标题】:how to catch the click event on a specific mesh in a group如何捕获组中特定网格上的点击事件
【发布时间】:2015-06-02 18:47:37
【问题描述】:

我有一组圆形几何元素,它们位于二十面体元素的顶点上。我想使用 jQuery 在每个单独的圆形元素上执行单击事件。那么如何在这些元素上实现jQuery点击事件..

建议我做一些好的参考。

【问题讨论】:

    标签: javascript three.js


    【解决方案1】:

    使用光线投射方法。基本机制是这样的: (三个修订版 70 和 javascript vanila)

    1) 设置目标

    var targets = [], 
        // When defining your 3d objects, use the push method 
        // to select the meshes you want to intersect.
        // targets.push(objectMesh);
    

    2) 设置光线投射器

    var raycaster = new THREE.Raycaster(),
        mouse = new THREE.Vector2(),
        intersects;
    

    3) 相交目标

    searchTarget(event){
        mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
        mouse.y = - (event.clientY / window.innerHeight) * 2 + 1;
        raycaster.setFromCamera(mouse, camera);
        intersects = raycaster.intersectObjects(targets);
        if (intersects.length > 0){
             // Use the intersected objects: 
             // intersects[0] represents the foremost object that was hovered
        }
    }
    

    4) 设置监听器

    renderer.domElement.addEventListener('mousemove', searchTarget, false);
    

    你也可以使用 jQuery:$( "#canvas" ).mousemove( searchTarget );

    【讨论】:

    • 点击事件监听器在哪里?
    猜你喜欢
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多