我有一个显示HTML5画布的网页。当网页加载,下面的JavaScript函数被调用:从另一个JS文件中的另一个函数调用JavaScript函数
window.onload = function(){
var sources = {};
sources[0] = document.getElementById("building").src,
sources[1] = document.getElementById("chair").src,
sources[2] = document.getElementById("drink").src,
sources[3] = document.getElementById("food").src,
sources[4] = document.getElementById("fridge").src,
sources[5] = document.getElementById("land").src,
sources[6] = document.getElementById("money").src,
sources[7] = document.getElementById("oven").src,
sources[8] = document.getElementById("table").src,
sources[9] = document.getElementById("van").src,
sources[10] = document.getElementById("burger").src,
sources[11] = document.getElementById("chips").src,
sources[12] = document.getElementById("drink").src,
sources[13] = document.getElementById("franchiseFee").src,
sources[14] = document.getElementById("wages").src,
sources[15] = document.getElementById("admin").src,
sources[16] = document.getElementById("cleaners").src,
sources[17] = document.getElementById("electricity").src,
sources[18] = document.getElementById("insurance").src,
sources[19] = document.getElementById("manager").src,
sources[20] = document.getElementById("rates").src,
sources[21] = document.getElementById("training").src,
sources[22] = document.getElementById("water").src,
sources[23] = document.getElementById("burger").src,
sources[24] = document.getElementById("chips").src,
sources[25] = document.getElementById("drink").src,
sources[26] = document.getElementById("creditors").src,
sources[27] = document.getElementById("electricity").src,
sources[28] = document.getElementById("food").src,
sources[29] = document.getElementById("hirePurchase").src,
sources[30] = document.getElementById("loan").src,
sources[31] = document.getElementById("overdraft").src,
sources[32] = document.getElementById("payeTax").src,
sources[33] = document.getElementById("tax").src
loadImages(sources, drawImage);
drawGameElements();
drawDescriptionBoxes();
};
这个函数从HTML到JavaScript的隐藏的部分一些图像,并通过调用它们绘制在画布“的drawImage()”函数在'sources'数组中的每个图像上。然后它调用'drawGameelements();'函数,它将更多的东西绘制到画布上,最后,我想调用'drawDescriptionBoxes()'函数。然而,这个函数是在一个单独的JS文件中的其余代码,并且当我在浏览器中查看页面时,虽然调用了'loadImages()'和'drawGameElements()',并绘制它们“再应该到画布上,我在控制台中的错误说:
ReferenceError: drawDescriptionBoxes is not defined
我假设意味着我没有正确引用的函数,因为它在同一个文件不是因为我在那里称它。
我想知道的是如何从另一个文件中调用此函数?它会是这样的:filename.js.drawDescriptionBoxes
?
文件名无所谓,它全都是关于函数的作用域。 –
您可以显示drawDescriptionBoxes的代码,以及如何包含这两个JavaScript文件? – Emily
请使用循环(通过带有ID的数组,或者遍布所有图像),而不是使用34行重复代码。 – Bergi