我是paperJS的新手,我试图在html中包含一个外部的paperscript文件,但它不起作用。虽然内联脚本工作正常。我的代码是:
HTML代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="js/paper.js"></script>
</head>
<body>
<script type="text/paperscript" src = "js/myScript.js" canvas = "myCanvas" >
</script>
<canvas id="myCanvas" resize></canvas>
paperScript代码(myScript.js):
// Create a Paper.js Path to draw a line into it:
var path = new Path();
// Give the stroke a color
path.strokeColor = 'black';
var start = new Point(100, 100);
// Move to start and draw a line from there
path.moveTo(start);
// Note the plus operator on Point objects.
// PaperScript does that for us, and much more!
path.lineTo(start + [ 100, -50 ]);
我在stackOverflow上发现了一个旧链接,它说使用0.9.10版修复了这个问题。但是这个问题在新版本中仍未解决吗? 这是链接:
答案 0 :(得分:1)
这不是paperJs的问题。在这里,我试图从本地文件系统加载资源,chrome不允许(违反其同源策略),因此我们需要一个本地Web服务器。Why?
可以使用WAMP(在Windows上),MAMP(在OS X上),LAMP(用于ubuntu)来设置本地Web服务器。它可以由Python http-server和NodeJS http-server设置。
答案 1 :(得分:0)
我根据这里的信息做出的唯一猜测是,您正在加载paper-core.js
,而不是paper-full.js
。稿件未在paper-core.js
中实施。
如果它是paper-core.js
的行为,那么你的代码永远不会被调用,因为没有什么可以解释起稿。
答案 2 :(得分:0)
实际上我通过Udemy -Git链接here中的另一名学生找到了解决方案。转到paper-full.js(它仅适用于下载的版本,而不是CDN)并转换行
xhr.open((options.method || 'get').toUpperCase(), options.url,
Base.pick(options.async, true));
仅限
xhr.open((options.method || 'get').toUpperCase(), options.url);
我知道不能在普通网站上使用它,因为它违反了安全协议,所以它只是用于练习。根据Paperjs,异步方法是可选的。顺便说一句,对我而言,它适用于Firefox,但不适用于Chrome。