Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Paperjs在不使用Paperjs代码时导致类语法错误_Javascript_Paperjs - Fatal编程技术网

Javascript Paperjs在不使用Paperjs代码时导致类语法错误

Javascript Paperjs在不使用Paperjs代码时导致类语法错误,javascript,paperjs,Javascript,Paperjs,使用Paperjs: <script type="text/javascript" src="paper.js"></script> <script type="text/paperscript" canvas="myCanvas" src="myapp.js"></script> 这会在paper.jsnot my code中创建一个语法错误,这是paperjs框架[paper.js:15421:12] 指第4行为14521: functi

使用Paperjs:

<script type="text/javascript" src="paper.js"></script>
<script type="text/paperscript" canvas="myCanvas" src="myapp.js"></script>
这会在paper.jsnot my code中创建一个语法错误,这是paperjs框架[paper.js:15421:12]

指第4行为14521:

  function raise(pos, message) {
    var loc = getLineInfo(input, pos);
    message += " (" + loc.line + ":" + loc.column + ")";
    var err = new SyntaxError(message);
    err.pos = pos; err.loc = loc; err.raisedAt = tokPos;
    throw err;
  }
我对这样的编码还不熟悉,我只是被难住了。我正在创建的类甚至没有使用paperjs中的任何代码,所以我不知道为什么它会在paper.js文件中创建错误。堆栈溢出也是个新手,所以请告诉我我做错了什么。

通过在标记上指定type=text/paperscript,您将代码加载为paperscript而不是JavaScript。 这意味着Paper.js将首先对其进行解析,然后再将其传递给浏览器JavaScript引擎。 为了解析代码,Paper.js使用一个解析器库。与Paper.js捆绑的acorn版本不支持ES6语法。 为了避免这种情况,您可以在加载Paper.js之前加载支持ES6的较新版本的acorn。 这实际上就是在Paper.js游乐场上所做的:

下面是一个演示解决方案的示例。 请注意,我过去常常快速加载最新版本的npm软件包,但您可以从任何地方加载它们

调试 html, 身体{ 保证金:0; 溢出:隐藏; 身高:100%; } 帆布{ 宽度:100%; 身高:100%; } //在这里,您现在可以使用ES6语法。 类MyClass{ 建造师{ 新路径。圆圈{ 中心:view.center, 半径:50, 填充颜色:“橙色” } } } const myInstance=new MyClass; 通过在标记上指定type=text/paperscript,可以将代码加载为paperscript而不是JavaScript。 这意味着Paper.js将首先对其进行解析,然后再将其传递给浏览器JavaScript引擎。 为了解析代码,Paper.js使用一个解析器库。与Paper.js捆绑的acorn版本不支持ES6语法。 为了避免这种情况,您可以在加载Paper.js之前加载支持ES6的较新版本的acorn。 这实际上就是在Paper.js游乐场上所做的:

下面是一个演示解决方案的示例。 请注意,我过去常常快速加载最新版本的npm软件包,但您可以从任何地方加载它们

调试 html, 身体{ 保证金:0; 溢出:隐藏; 身高:100%; } 帆布{ 宽度:100%; 身高:100%; } //在这里,您现在可以使用ES6语法。 类MyClass{ 建造师{ 新路径。圆圈{ 中心:view.center, 半径:50, 填充颜色:“橙色” } } } const myInstance=new MyClass;
您可以通过删除脚本src来确保paper.js中没有错误吗?好的。myapp.js中的代码由paper js解释,不是功能齐全的javascript,而是paperscript type=text/paperscript。我不确定,但似乎您没有所有可用的javascript es6语法。因此,答案是重新评估您在paperscript部分中输入的内容。你可能会从他们的课程中受益。谢谢我的兄弟!我几乎有一种感觉,可能就是这样。你能通过删除脚本src来确保paper.js中没有错误吗?好的。myapp.js中的代码由paper js解释,不是功能齐全的javascript,而是paperscript type=text/paperscript。我不确定,但似乎您没有所有可用的javascript es6语法。因此,答案是重新评估您在paperscript部分中输入的内容。你可能会从他们的课程中受益。谢谢我的兄弟!我几乎有一种感觉,这可能就是它。谢谢,这看起来可以解决我的问题,但是我发现如果我将myapp.js加载为type=text/javascript而不是paperscript,我仍然可以使用纸张访问paperjs。符号我是怎么做的好吗?按照您概述的方式进行操作的好处是什么?在JavaScript上使用PaperScript的好处通常对小型项目或示例更有价值。主要的优点是避免在类前面加上前缀纸。能够对点实例等对象进行算术运算。使用PaperScript,您可以执行例如:pointC=pointA+pointB。。。JavaScript的方式有点冗长。谢谢,这看起来可以解决我的问题,但是我发现如果我将myapp.js加载为type=text/JavaScript而不是paperscript,我仍然可以使用纸张访问paperjs。符号我是怎么做的好吗?按照您概述的方式进行操作的好处是什么?在JavaScript上使用PaperScript的好处通常对小型项目或示例更有价值。主要的优点是避免在类前面加上前缀纸。能够对一些对象进行算术运算,比如P 列举实例。使用PaperScript,您可以执行例如:pointC=pointA+pointB。。。JavaScript的方式有点冗长。
  function raise(pos, message) {
    var loc = getLineInfo(input, pos);
    message += " (" + loc.line + ":" + loc.column + ")";
    var err = new SyntaxError(message);
    err.pos = pos; err.loc = loc; err.raisedAt = tokPos;
    throw err;
  }