我想在一个Paperscript范围内使用多个.js文件,如下所示:
<script type="text/paperscript" src="block.js" canvas="canvas"></script>
<script type="text/paperscript" src="main.js" canvas="canvas"></script>
在block.js中我按如下方式定义一个类:
function Block(point) {
// create a Path.Rectangle here
}
在main.js中,我想创建一个Block类的实例,如下所示:
function onMouseDown(event) {
var myBlock = new Block(event.point);
// do extra work here
}
但是,我收到以下错误:
Uncaught ReferenceError: Block is not defined - in main.js
但是如果我在block.js中实例化Block类,它就会按预期工作。
如何在同一范围内使用多个paperscript js文件,并在另一个文件中的一个文件中定义访问类?
我正在使用paperjs-v0.9.25并使用Chrome进行测试。
答案 0 :(得分:1)
您有三种选择:
window.Block = function(point) {...}
。我总是使用JavaScript,所以从来没有碰到过这个。这是paperjs教程的链接:http://paperjs.org/tutorials/getting-started/using-javascript-directly/。
问题在于,纸张使用函数调用将代码包装在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声明是在一个函数中,它的定义是该函数的本地定义。