从变量中的.txt文件获取文本

时间:2017-11-20 13:34:19

标签: javascript html5 aframe

所以我有一个带有一些A帧代码的html文件(它只是向场景添加一个球)。还有一个.js脚本,其中包含可以移动球的函数,如moveUp();.现在我希望能够使用JavaScript的eval执行一些用.txt文件编写的JavaScript代码(使用移动功能)。

但是客户端JavaScript无法读取或写入.txt文件(我不想在运行时自己选择文件)。有没有办法在JavaScript var中获取.txt文件的数据,而无需设置服务器和使用服务器端JavaScript?

1 个答案:

答案 0 :(得分:2)

我会就你将如何进行提出建议。听起来你真正需要的是一种允许用户将commands而不是实际code保存到文件中的方法,然后允许再次加载这些命令并影响位置等屏幕上的形状。

假设您有move函数,其中包含objectxy个参数:

function move(obj, x, y) {
  // Move obj using x and y coords
}

也许你有一个允许用户输入这些坐标的表单,但不知何故你想要保存这些坐标和动作(move)。

最简单的方法是使用一组对象。这样做的好处是你可以stringify进入JSON,保存这些数据,然后重新加载它并将它解析回你的应用程序,直到你的内容。

例如,您可以将数据保存为数组中的一系列命令,如下所示:

const commands = [
  { action: 'move', x: 30, y: 50 },
  { action: 'move', x: 300, y: 510 }
];

您可以通过push将更多命令对象添加到阵列中。

然后你可能有一个包含一些动作功能的对象。让我们再次使用move

const commandFns = {
  move: function (obj, x, y) {
    // Move obj using x and y coords
  }
}

因此,要将命令移开,只需遍历actions数组,调用相应的函数。

const obj = currentShapeToBeMoved;
commands.forEach(({ action, x, y }) => actionFns[action](obj, x, y));

要保存命令JSON.stringify(commands)命令数据对象。也许将它保存到文件到磁盘,或者甚至更好,localStorage

要将文件加载回应用程序,请找到保存数据的位置,然后JSON.parse(data)返回其数组形式。

简而言之,您不会在文件中附加任何内容。您所做的只是加载数据,更新应用程序中的数据,然后保存相同/修改后的数据