【问题标题】:Javascript: How to change TextGeometry on click event?Javascript:如何在点击事件上更改 TextGeometry?
【发布时间】:2017-02-04 01:20:15
【问题描述】:

我正在处理ThreeJS geometry canvas text。假设单击 html 按钮后,该文本将更改为另一个文本。但是,它不起作用。如何更改点击事件的 TextGeometry?

这是我正在使用的:

 var theText = "Hello three.js! :)";

        var hash = document.location.hash.substr( 1 );

        if ( hash.length !== 0 ) {

            theText = hash;

        }

        var geometry = new THREE.TextGeometry( theText, {

            font: font,
            size: 80,
            height: 20,
            curveSegments: 2

        });

        geometry.computeBoundingBox();

        var centerOffset = -0.5 * ( geometry.boundingBox.max.x - geometry.boundingBox.min.x );

        var material = new THREE.MultiMaterial( [
            new THREE.MeshBasicMaterial( { color: Math.random() * 0xffffff, overdraw: 0.5 } ),
            new THREE.MeshBasicMaterial( { color: 0x000000, overdraw: 0.5 } )
        ] );

        var mesh = new THREE.Mesh( geometry, material );

        mesh.position.x = centerOffset;
        mesh.position.y = 100;
        mesh.position.z = 0;

        mesh.rotation.x = 0;
        mesh.rotation.y = Math.PI * 2;

        group = new THREE.Group();
        group.add( mesh );

        scene.add( group );
    }
      $('.button').on('click', function(e){
      theText.dispose();

       var menu= new Array('option1', 'option2', 'option3');
       theText=menu;

           });

【问题讨论】:

    标签: javascript jquery three.js


    【解决方案1】:

    您必须创建另一个 TextGeometry 和网格。然后在单击事件中,您将使用新文本删除以前的文本。

    function onMouseClick(){
        scene.remove(mesh_first);
        scene.add(mesh_second); 
    }
    

    供参考-https://github.com/mrdoob/three.js/blob/master/src/core/Object3D.js#L332

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-12
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      • 2017-04-23
      相关资源
      最近更新 更多