dus*_*iar 2 javascript paperjs
使用 Paperjs:
<script type="text/javascript" src="paper.js"></script>
<script type="text/paperscript" canvas="myCanvas" src="myapp.js"></script>
Run Code Online (Sandbox Code Playgroud)
尝试在 myapp.js 中创建一个类:
class Petal {
constructor(index, x, y, diameter, round) {
this.index = index;
this.x = x;
this.y = y;
this.diameter = diameter;
this.round = round;
Run Code Online (Sandbox Code Playgroud)
这会在 [paper.js:15421:12] 的 paper.js(不是我的代码,那是 paperjs 框架)中创建一个“语法错误意外标记”。
它指的是这个(第 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;
}
Run Code Online (Sandbox Code Playgroud)
我是这样编码的新手,我只是被难住了。我正在制作的课程甚至不使用 paperjs 中的任何代码,所以我不知道为什么它会在 paper.js 文件中创建错误。堆栈溢出也是新手,所以请告诉我我做错了什么。
通过指定type="text/paperscript"你的<script>标签,你加载你的代码PaperScript,而不是JavaScript。
这意味着在Paper.js将它传递给浏览器JavaScript引擎之前将首先解析它。
为了解析你的代码,Paper.js使用acorn,一个解析器库。并且acorn捆绑的版本Paper.js不支持ES6语法。
你可以做什么来规避,加载的新版本acorn(支持ES6)装货前Paper.js。
这实际上是在Paper.js操场上所做的:http : //sketch.paperjs.org/
这是一个演示解决方案的小提琴。
请注意,我使用https://unpkg.com来快速加载最新版本的 npm 包,但您可以从任何地方加载它们。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Debug</title>
<!-- Load latest acron version first -->
<script type="text/javascript" src="https://unpkg.com/acorn"></script>
<!-- Then load Paper.js -->
<script type="text/javascript" src="https://unpkg.com/paper"></script>
<style>
html,
body {
margin: 0;
overflow: hidden;
height: 100%;
}
canvas {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<canvas id="canvas" resize></canvas>
<script type="text/paperscript" canvas="canvas">
// Here you can now use ES6 syntax.
class MyClass {
constructor() {
new Path.Circle({
center: view.center,
radius: 50,
fillColor: 'orange'
})
}
}
const myInstance = new MyClass();
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
587 次 |
| 最近记录: |