【问题标题】:using an xml file to initialise javascript program使用 xml 文件初始化 javascript 程序
【发布时间】:2015-05-28 09:19:17
【问题描述】:

我正在编写一个使用 xml 文件作为地图、玩家等起始值的游戏。 我想要一种从 xml 文件初始化游戏的简单方法。 我的 xml 是:

<save>
  <player>
    <name> "martin" </name>
    <coins> 100 </coins>
    <hp> 15 </hp>
  </player>
  <map>
    <height> 5 </height>
    <width> 5 </width>
  </map>
</save>

我想要 javascript 代码输出(到我的游戏文件的顶部)

var player = {
    name:"martin";
    coins:100;
    hp:15;
}
var map = [[[],[],[],[],[]],
[[],[],[],[],[]],
[[],[],[],[],[]],
[[],[],[],[],[]],
[[],[],[],[],[]] // although not formatted this way

所以基本上我想将数据从 xml 加载到对象和数组中。 然后我可以做一些事情,比如使用 javascript 的内置函数来改变玩家的 hp。 谢谢, 马丁

【问题讨论】:

  • 这个游戏是托管在服务器上还是本地?
  • 另外,我建议您使用 JSON 而不是 XML,因为 JSON 是专门为 JavaScript 设计的。
  • 它是本地的,但可以托管...
  • 好的,顺便说一句,你是在 Windows 上的 OS X/Linux 上吗?
  • Linux。我发现它最适合开发。

标签: javascript xml xml-parsing


【解决方案1】:

使用JSON 执行此操作要容易得多。可以使用AJAX加载JSON文件并设置值;这是一个例子。

JavaScript 文件(例如script.js):

var player = {
  name: "martin",
  coins: 100,
  hp: 15
}

var map =
[[[], [], [], [], []],
 [[], [], [], [], []],
 [[], [], [], [], []],
 [[], [], [], [], []],
 [[], [], [], [], []]];

var request = new XMLHttpRequest();

request.onstatechange = function () {
  var data;
  if (request.readyState === 4 && request.status === 200) {
    data = JSON.parse(request.responseText);
    player = data.player;
    map = data.map;
  }
}

request.open("GET", "data.json");
request.send();

JSON 数据(例如data.json):

{
  "player": {
    "name": "martin",
    "coins": 100,
    "hp": 15
  },

  "map":
  [[[], [], [], [], []],
   [[], [], [], [], []],
   [[], [], [], [], []],
   [[], [], [], [], []],
   [[], [], [], [], []]]
}

为此,您需要在服务器上运行代码,如果您在本地开发,则可以使用 Python:

$ cd path/to/directory
$ python3 -m http.server

然后只需在您的网络浏览器中打开 IP 地址(使用正确的端口)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 2020-02-09
    • 2023-03-18
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    相关资源
    最近更新 更多