在我的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