在我的JSP文件中,我创建了对同一个javascript函数(setURL函数)的多个调用。按JSP编写的按顺序执行的javascript函数调用
JSP文件
<script src="js/webGL.js"></script>
<script type="text/javascript">
<%
Brazo brazo = brazoDAO.getBrazo(id);
List<Pieza> piezas = brazo.getPiezas();
int i=piezas.size()-1;
while(i>=0)
{
String url=piezas.get(i).getUrl();
String tipo=piezas.get(i).getTipo_fk().getNombre();
List<SubPieza> subPiezas = piezas.get(i).getSubPiezas();
int u=0;
while(u<subPiezas.size())
{
String conf=subPiezas.get(u).getConf().toString();
int n = subPiezas.get(u).getOrden();
%>
setURL(<%="\""+url+"/"+tipo+"/"+tipo+n+".json\""%>,<%=conf%>);
<%
u++;
}
i--;
}
%>
</script>
这是JavaScript函数setURL。此功能在webGL.js文件
WebGL.js
function setURL(url, conf)
{
loader.load(url, function(geometry,materials)
{
// some code
});
}
当调试JavaScript文件,我看到调用的顺序比JSP文件都不同。
我该如何拨打电话?
谢谢
- + - + - + - + - + - + - + - +
编辑
这是HTML有
<script type="text/javascript">
setURL("./models/kl250-3/hand/hand1.json","pos:0,0,0;rot:0,0,0;sca:1,1,1;lim:0,1;");
setURL("./models/kl250-3/hand/hand2.json","pos:0,0,0;rot:0,0,0;sca:1,1,1;lim:0,1;");
setURL("./models/kl250-3/elbow/elbow1.json","pos:0,0,0;rot:0,0,0;sca:1,1,1;lim:0,2;");
setURL("./models/kl250-3/elbow/elbow2.json","pos:0,0,0;rot:0,0,0;sca:1,1,1;lim:0,1;");
setURL("./models/kl250-3/base/base1.json","pos:0,0,0;rot:0,0,0;sca:1,1,1;lim:0,0;");
setURL("./models/kl250-3/base/base2.json","pos:0,0,0;rot:0,0,0;sca:1,1,1;lim:4,0;");
</script>
洙预期的呼叫顺序为:hand1,hand2,elbow1,elbow2,base1,base2
里面setUrl()我把一个console.log(网址)看到的顺序。这是拨打电话的顺序。
- ./models/kl250-3/mano/mano1.json
- ./models/kl250-3/antebrazo/antebrazo2.json
- ./models/kl250-3/mano/mano2。 JSON
- ./models/kl250-3/base/base1.json
- ./models/kl250-3/base/base2.json
- ./models/kl250-3/antebrazo/antebrazo1.json
An d有趣的是,如果我重新加载页面,订单是不同的。
- + - + - + - + - + - + - + - + - +
SOLUTION
objectCount开始于0
function setURL(url, conf)
{
var currentOrder=objectCount;
objectCount+=1;
var modelo = new THREE.Mesh();
modelo.index=currentOrder;
objectsArray[currentOrder]=modelo;
loader.load(url, function(geometry,materials)
{
//some code
});
}
我添加另一个函数的使用该阵列,现在所有的工作。
谢谢大家对你的答案
您的答案帮助我获得了解决方案。有点不同。我编辑问题以添加解决方案 – Cadeq