0

ペーパースクリプトがあり、Javascript からこのペーパースクリプトの関数を呼び出して値を変更する必要があります。

私はそれを何らかの方法で書くことができることを知っています.paperscriptは必要なく、javascriptだけが必要です. しかし、私はそれがうまくいきません。

paperscript関数をjavascriptにエクスポートできる他の方法はありますか? またはいくつかの他の方法があります

私もこのようなものを見ました:しかし、それもうまくいきませんでした:-(

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

--------- 私の現在の解決策 --------

私のJavaScript:

var paperscript = {};

今までの私のペーパースクリプトコード:

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

paperscript 以外の呼び出し:

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

1 に答える 1

0

このコード (ここでは jsbin ) では、javascript を使用しsomeFunctionて paperscript を呼び出し、四角形を赤にします。

<!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 は (通常) 画像が読み込まれるまで読み込まれません。そのため、このコードではwindow.onloadpaperscript 関数を呼び出しています。

于 2013-08-03T22:41:50.820 に答える