0

PShape の色と不透明度を変更するコードがあり、それをデバッグしていて、すべてのメソッドが機能することを 99% 確信しています。Processing には遅延メソッドが組み込まれていないため、遅延メソッドを作成しました。デバッグしていたときに、すべての遅延呼び出しが行われた後で、想定されていたものだけが描画されることに気付きました (遅延がなくなると、PShape の最新バージョンが描画されます)。だから私は私の遅延方法を見て、それをいじりましたが、それでも正しい結果はありません. PShape が更新されない理由を説明してもらえますか?

編集* noLoop() を使用するようにという回答を受け取りました。使用方法をググったのですが、正しい場所を見つけられないようです。セットアップでフラッシュメソッドの最初の行を試しました(しかし、更新されていないライブボタンがあることに気付きました)

PShape のフラッシュを 2 回行う以下のコード:

    noLoop();      
root.setVal(newVal);
root.highlight(0,255,0);
root.setopacity(200);
redraw();
try {Thread.sleep((long)1500);} 
catch (InterruptedException ex) {println("Error!");}
root.setopacity(0);
redraw();
try {Thread.sleep((long)1500);} 
catch (InterruptedException ex) {println("Error!");}
root.setopacity(200);
root.clearHL();//just to make sure I repeated these methods
root.highlight(0,255,0);
redraw();
try {Thread.sleep((long)1500);} 
catch (InterruptedException ex) {println("Error!");}
root.clearHL();
redraw();
loop();
return root;
4

1 に答える 1

0

setupコード (関数など) をさらに表示する必要がありますが、問題は、オブジェクトを手動で再描画する前に
呼び出していない可能性があるという事実に起因しているようです。noLoop();

これにより、Processing の自動再描画によって上書きされる前に、オブジェクトが 1 フレームだけフラッシュアップします。

余談ですが、必要Timerに応じて遅延などに a を使用できます。

または使用Sleep

import java.lang.Thread.*;

noLoop();
root.setVal(newVal);
root.highlight(0,255,0);
root.setopacity(200);
redraw();
Thread.sleep(1500);;
root.setopacity(0);
redraw();
Thread.sleep(1500);
root.setopacity(200);
root.clearHL();//just to make sure I repeated these methods
root.highlight(0,255,0);
redraw();
Thread.sleep(1500);
root.clearHL();
redraw();
于 2013-02-27T01:10:32.523 に答える