Почему мой код не может случайно использовать внешние переменные? - PullRequest
0 голосов
/ 21 мая 2019

Итак, я пишу игру в HTML Canvas с JavaScript.Для организации существует множество различных файлов JS, но иногда, когда я объявляю новую переменную, многие (если не все) другие переменные становятся недоступными в других файлах.Почему это происходит?Я приведу пример, чтобы вы могли лучше понять.Давайте предположим, что я определяю эту переменную в file1.js:

var randomVariable;

Затем, здесь, в file2.js, я пытаюсь использовать ее:

randomVariable = 5;
if(randomVariable == 6){
    <some code idk>
}

Это работает, однако иногда это не«т.Иногда консоль говорит мне, что "randomVariable" не определен в file2.js.Это противоречиво, я не могу точно определить, что, кажется, вызывает это.У меня есть личная библиотека, которая содержит некоторые полезные функции, и я использую эти функции по всему коду, но иногда каждый из вызовов прерывается, говоря, что он не определен.Я не могу обернуть голову вокруг вопроса.Прежде чем кто-либо спросит, вот как определяется файл .html:

<html>

<canvas id="gameCanvas" width=800
height=600></canvas>

<script src="js/HUD.js"></script>
<script src="js/classes.js"></script>
<script src="js/movement.js"></script>
<script src="js/gameplay.js"></script>
<script src="js/graphics.js"></script>
<script src="js/input.js"></script>
<script src="js/audio.js"></script>
<script src="js/Main.js"></script>

</html>

Вот и весь HTML-код.Мне сказали, что порядок, в котором эти файлы называются, имеет значение.Однако иногда это так, иногда нет.Иногда я могу вызывать функции и переменные из «классов», которые определены в «аудио».В других случаях это ломается.Мне очень нужна помощь, потому что это делает невозможным кодирование.

1 Ответ

0 голосов
/ 21 мая 2019

Добавьте это к каждому файлу:

window.addEventListener("load", function() {
    //Your code here
});

Это обеспечит выполнение вашего кода только после загрузки Windows.Таким образом, только когда все ваши файлы загружены правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...