Javascript Paperjs在不使用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
<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;
}