如何在一个网站页面中更改对象?(three.js)

时间:2013-08-13 01:49:10

标签: three.js

我想构建一个3d对象的图库,但是当我完成显示一个对象时,如何通过按下将其更改为另一个对象?如何删除第一个对象并释放记忆?我应该学习哪些知识?

我已经尝试构建并删除iframe来显示对象但是会收到内存泄漏: 这是我的代码的一部分:

<html xmlns="http://www.w3.org/1999/xhtml">  
 <HEAD>   
    <SCRIPT LANGUAGE="JavaScript">  
    <!--  
        $=function(s){return document.getElementById(s)}  
        window.onload=function(){  
            var t=[];  
            var btn1=$('btn1'),btn2=$('btn2'),btn3=$('btn3');  
            btn1.onclick=function(){  
                if($('ifm1'))return;  
                var c=$('content');  
                var ifm=document.createElement('iframe');  
                ifm.src='a.html';  
                ifm.id='ifm1';  
                c.appendChild(ifm);  
                t.push(ifm);  
            }  
            btn2.onclick=function(){  
                var ifm=$('ifm1');  
                ifm.src="";  
                ifm.parentNode.removeChild(ifm);  
            }  
        }  
    //-->  
    </SCRIPT>  
 </HEAD>  
 <BODY>  
      <input id="btn1" type="button" value="open"/>   
      <input id="btn2" type="button" value="close"/>  
      <div id="content"></div>  

 </BODY>  
</HTML>  

1 个答案:

答案 0 :(得分:0)

嗯,基本上你要做的就是创建你的所有图库对象,一次只显示一个,将所有其他对象放到visible:false(使用traverse函数)。当您完成一个对象时 - 只需从场景中删除它,就像您在第一个位置添加它一样(添加:scene.add();删除:scene.remove())。这样你就不会有任何内存泄漏。