0

我有一个paperscript,我需要从我的Javascript 调用这个paperscript 中的一个函数来更改一些值。

我知道我可以用某种方式编写它,我不需要纸质脚本,而只需要 javascript。但我没有得到它的工作。

还有其他方法可以将paperscript函数导出到javascript吗?或者还有其他一些方法

我也看到了类似的东西:但它也没有用:-(

https://github.com/paperjs/paper.js/issues/17

---------我目前尝试解决它--------

我的JavaScript:

var paperscript = {};

到目前为止我的paperscript代码:

this.someFunction = function(){ /*doSomething*/ };
//...
paper.install(window.paperscript);

paperscript之外的调用:

paperscript.someFunction();  //error, object doesnt have that function :-(
4

1 回答 1

0

在这段代码中(此处为 jsbin),使用 javascript 调用someFunctionpaperscript,将矩形变为红色:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
  <script type="text/javascript" src="https://raw.github.com/paperjs/paper.js/master/dist/paper.js"></script>
  <script type="text/javascript">
    var paperscript = {};
    window.onload = function(){
      paperscript.someFunction();
    }
  </script>
  <script type="text/paperscript" canvas="p">
    this.someFunction = function(){
      rect1.fillColor = new Color('red');
    };
    var rect1 = new Path.Rectangle({
        point: [0, 10],
        size: [100, 100],
        strokeColor: 'black'
        });
    paper.install(window.paperscript);
  </script>
</head>
<body>
  <canvas id="p" resize></canvas>
</body>
</html>

我的猜测是,在尝试使用 javascript 访问它之前,您没有等到 paperscript 加载。Paperscript 在加载图像之前(通常)不会加载;这就是为什么这段代码window.onload用来调用 paperscript 函数的原因。

于 2013-08-03T22:41:50.820 回答