0

我想建立一个 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>  
4

1 回答 1

0

好吧,基本上你想要做的是创建所有画廊对象,一次只显示一个,将所有其他对象放入visible:false(使用traverse函数)。当您完成一个对象时 - 只需将其从场景中删除,就像您首先将其添加到那里一样(添加:scene.add();删除:)scene.remove()。这样你就不会有任何内存泄漏。

于 2013-08-13T16:58:42.847 回答