1

可以从我的 HTML5 游戏资源中逐行读取 txt 文件吗?(资源 = 我的游戏项目中的文件夹之一)我在这个文件中保存了有关我的游戏关卡的信息。我只找到了使用 PHP、Ajax 的示例,但所有这些都需要服务器,但我想在服务器或离线模式下运行我的游戏。提前致谢。

4

2 回答 2

2

模板和预处理语言(如 LESS 或 CoffeeScript)经常使用的一种技术是使用带有type浏览器无法识别的属性的脚本标签。这会导致浏览器和搜索引擎忽略它,但 JavaScript 可以访问它。

演示| 代码视图

  <script type="text/mygamelevel" id="level1">
    0010011001111011
    0011011100010
    10101110111101101
  </script>

  <script type="text/javascript">
    var level = document.getElementById("level1").text;
    var lines = level.split("\n");
    for (var i=0; i<lines.length; i++) {
      var line = lines[i];
      if (!line.trim()) continue;

      alert(line);
    }
  </script>

如果首选文件,您可以动态请求它。这是一个使用jQuery 的 get函数的例子。

$.get('levels/level1.txt', function(level) {
    var lines = level.split("\n");
    for (var i=0; i<lines.length; i++) {
      var line = lines[i];
      if (!line.trim()) continue;

      alert(line);
    }
});

无法保证回调中的代码将在任何给定时间执行,因此我建议将一些 start-new-level 代码放在那里,而不是在代码中的其他任何地方。否则,您不知道您是否已经下载了关卡信息。如本答案的第一个片段所示,通过内联数据可以避免此问题。

于 2013-03-09T10:00:10.993 回答
1

浏览器的 JavaScript 没有也不应该直接访问本地文件系统。

于 2013-03-09T09:54:14.463 回答