У меня есть XML-документ, который определяет задачу, которая представляет собой список действий, которые необходимо выполнить с определенными данными. Мне нужно преобразовать этот «список задач» в метод Javascript, который может быть вызван позднее, который, в свою очередь, вызывает ряд предопределенных методов с соответствующими данными. Как бы вы этого достигли?
Важное уточнение:
Я не беспокоюсь о разборе XML. Меня больше интересует, как на самом деле построить метод задачи, в том числе связать основные данные с заранее определенными методами действия. Это та часть, с которой я борюсь.
Редактировать: Я пересмотрел свой пример, чтобы сделать его немного интереснее и, надеюсь, немного понятнее.
XML:
<task id="enter-castle">
<if holding="castle-key">
<print message="You unlock the castle door and enter." />
<destroy item="castle-key" />
<goto location="castle" />
<else>
<print message="The castle door is locked." />
</else>
</if>
</task>
Javascript:
Game = {
print: function(message) {
// display message
},
destroy: function(item) {
// destroy the object
},
goto: function(location) {
// change player location
},
ifHolding: function(item) {
// return true if player has item
}
};
parseTask(taskNode) {
var taskId = taskNode.getAttribute('id');
// What goes here??
Game.tasks[taskId] = /* ??? */;
}
Когда я вызываю parseTask()
на узле <task id="enter-castle">
, это должно создать функцию, которая, в действительности , выполняет следующее при вызове:
Game.tasks.enterCastle = function() {
if (Game.ifHolding('castle-key')) {
Game.print("You unlock the castle door and enter.");
Game.destroy('castle-key');
Game.goto('castle');
} else {
Game.print("The castle door is locked.");
}
}