外部脚本在PaperJS v0.9.22中不起作用

时间:2015-06-13 09:32:33

标签: javascript html5 html5-canvas paperjs

我是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版修复了这个问题。但是这个问题在新版本中仍未解决吗? 这是链接:

How to use paperscript from external source?

3 个答案:

答案 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。