HTML5 キャンバスを表示する Web ページがあります。Web ページが読み込まれると、次の 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 にロードし、「sources」配列内の各画像に対して「drawImage()」関数を呼び出してキャンバスに描画します。次に、「drawGameelements();」を呼び出します。この関数は、さらにいくつかのものをキャンバスに描画します。最後に、'drawDescriptionBoxes()' 関数を呼び出します。
ただし、この関数は残りのコードとは別の JS ファイルにあり、ブラウザーでページを表示すると、「loadImages()」と「drawGameElements()」が呼び出され、想定どおりに描画されますが、キャンバスに移動すると、コンソールに次のエラーが表示されます。
ReferenceError: drawDescriptionBoxes が定義されていません
これは、関数を呼び出している場所と同じファイルにないため、関数を正しく参照していないことを意味すると思います。
私が疑問に思っているのは、他のファイルからこの関数をどのように呼び出すのですか? それは次のようなものでしょうか: filename.js.drawDescriptionBoxes
?