Я работаю над реализацией идеи для HTML5, с которой я играю.Часть этого, естественно, хранит контент, среди которого данные о различных способностях в игре, а также о персонажах и т. П.
Хотя динамический контент, например, определенные персонажи, будет перемещен позжеЯ, вероятно, буду придерживаться XML для статического контента, такого как статистика для способностей и снаряжения, что означает, что я предпочел бы как можно скорее исправить возникающие у меня проблемы с XML.
Теперь, чтобы сделать этоЯ загружаю в документы XML в начале фазы боя сначала символ, затем способности и т.д., относящиеся к этому персонажу.
Для этого у меня есть функция «loadXMLFile», которая принимаетfilename:
var loadXMLFile = function(filename) {
req = new XMLHttpRequest();
req.onreadystatechange = function() {
return req.responseXML;
}
req.open("GET", filename, true);
req.send();
}
Пример загрузки и манипулирования данными:
function Character(id) {
doc = loadXMLFile("characters.xml");
characters = doc.getElementsByTagName("Character");
Мое намерение было заставить вызов функции ждать возвращаемое значение, прежде чем продолжить.Как вы можете сказать из названия вопроса, это не работает.Вместо этого, как только я пытаюсь манипулировать данными, третья строка в примере, я получаю следующую ошибку времени выполнения: Uncaught TypeError: Невозможно вызвать метод 'getElementsByTagName' с неопределенным значением
AsВ примере показано, что я загружаю эти XML-файлы в свои конструкторы, используя XML-файл для заполнения класса.Следовательно, структура вызова другой функции внутри обработчика события readystatechange менее предпочтительна.Я вынужден повторять код загрузки XML везде, где я это делаю, только для создания отдельных обработчиков событий?