1

JavaScriptで処理変数を変更しようとしています。

HTML:

<canvas id="Processing_test" data-processing-sources="test06-controller.pde">
</canvas>

処理:

float posX = 500;

void setup() {
  size(600,600);
  background(100);
  ellipseMode(CENTER);
}
void draw() {
  background(100);
  fill(200);
  ellipse(posX,300,260,260);
}

Javascript:

var p = Processing.getInstanceById('Processing_test');
alert(p.posX);

問題はアラートが表示されないことです。私が書いたら

alert(p);

未定義。Javascript で宣言したグローバル変数を使用できることはわかっていますが、逆にアクセスしたいと考えています。それは可能ですか?

(アラートは単なるテストです。最終的にやりたいことではありません;))

4

1 に答える 1

2

現在、Processing.js がスケッチで公開しているのは関数だけなので、getter/setter を記述できます。

float getPosX() { return posX; }
void setPosX(float v) { posX = v; }

心ゆくまで変数を取得および設定できるようになりました。

ただし、通常、スケッチに基づいて JavaScript で何かを実行したい場合は、代わりにスケッチで JS 関数を呼び出す方が理にかなっています。たとえば、posXページのどこかで更新する必要がある場合、スケッチは呼び出すことができます

javascript.xPosUpdated(posX);

(スケッチの起動時に JavaScript をバインドした場合)。この方法では、JS がスケッチに「到達」する必要はありません。必要な更新を実行するために必要なすべての情報を渡すだけです。

于 2013-03-08T14:50:36.887 に答える