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