Paperjs - 在多个 paperscript 文件中访问 类
Paperjs - Access classes in multiple paperscript files
我想在一个 Paperscript 范围内使用多个 .js 文件,如下所示:
<script type="text/paperscript" src="block.js" canvas="canvas"></script>
<script type="text/paperscript" src="main.js" canvas="canvas"></script>
在block.js中我定义了一个class如下:
function Block(point) {
// create a Path.Rectangle here
}
并且在 main.js 中,我想创建 Block class 的一个实例,如下所示:
function onMouseDown(event) {
var myBlock = new Block(event.point);
// do extra work here
}
但是,我收到以下错误:
Uncaught ReferenceError: Block is not defined - in main.js
但是,如果我在 block.js 中实例化块 class,它就会按预期工作。
如何在同一范围内使用多个 paperscript js 文件并在另一个文件中访问一个文件中定义的 classes?
我正在使用 paperjs-v0.9.25 并使用 Chrome.
进行测试
你有三个选择:
- 连接所有 JavaScript 个文件,使它们成为一个文件。
- 使用 JavaScript 模式的纸张,而不是 PaperScript 模式。
- 明确地使你的声明成为全球性的,例如,
window.Block = function(point) {...}
。
我总是使用 JavaScript 所以从来没有 运行 进入这个。这是 paperjs 教程的 link:http://paperjs.org/tutorials/getting-started/using-javascript-directly/.
问题是 paper 使用提供您引用的 paper 对象的函数调用来包装 code.js 中的代码。以下是论文生成的内容:
paper._execute = function(Rectangle,Path) {
function Block(point) {
var r = new Path.Rectangle(point, [100, 100]);
r.strokeColor = 'black';
return r;
}
var b = new Block([100, 100]);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJza...JdfQ==
}
因为您的 Block 声明在一个函数中,所以它的定义是该函数的局部。
我想在一个 Paperscript 范围内使用多个 .js 文件,如下所示:
<script type="text/paperscript" src="block.js" canvas="canvas"></script>
<script type="text/paperscript" src="main.js" canvas="canvas"></script>
在block.js中我定义了一个class如下:
function Block(point) {
// create a Path.Rectangle here
}
并且在 main.js 中,我想创建 Block class 的一个实例,如下所示:
function onMouseDown(event) {
var myBlock = new Block(event.point);
// do extra work here
}
但是,我收到以下错误:
Uncaught ReferenceError: Block is not defined - in main.js
但是,如果我在 block.js 中实例化块 class,它就会按预期工作。
如何在同一范围内使用多个 paperscript js 文件并在另一个文件中访问一个文件中定义的 classes?
我正在使用 paperjs-v0.9.25 并使用 Chrome.
进行测试你有三个选择:
- 连接所有 JavaScript 个文件,使它们成为一个文件。
- 使用 JavaScript 模式的纸张,而不是 PaperScript 模式。
- 明确地使你的声明成为全球性的,例如,
window.Block = function(point) {...}
。
我总是使用 JavaScript 所以从来没有 运行 进入这个。这是 paperjs 教程的 link:http://paperjs.org/tutorials/getting-started/using-javascript-directly/.
问题是 paper 使用提供您引用的 paper 对象的函数调用来包装 code.js 中的代码。以下是论文生成的内容:
paper._execute = function(Rectangle,Path) {
function Block(point) {
var r = new Path.Rectangle(point, [100, 100]);
r.strokeColor = 'black';
return r;
}
var b = new Block([100, 100]);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJza...JdfQ==
}
因为您的 Block 声明在一个函数中,所以它的定义是该函数的局部。