Java 正在处理draw()方法使用无效

Java 正在处理draw()方法使用无效,java,processing,Java,Processing,我有代码可以改变PShape的颜色和不透明度,我正在调试它,我99%确信所有的方法都能工作。我做了一个延迟方法,因为处理不再有内置的延迟方法。当我调试它时,我注意到它只会在所有延迟调用完成后绘制它应该绘制的内容(当不再有延迟时,它会绘制PShape的最新版本)。所以我看了看我的延迟方法,我把它弄得一团糟,但仍然没有正确的结果。有人能给我解释一下为什么PShape没有更新吗 编辑*我收到一个答案,告诉我如何使用noLoop(),我在谷歌上搜索了如何使用它,但似乎找不到正确的放置位置。我尝试了fla

我有代码可以改变PShape的颜色和不透明度,我正在调试它,我99%确信所有的方法都能工作。我做了一个延迟方法,因为处理不再有内置的延迟方法。当我调试它时,我注意到它只会在所有延迟调用完成后绘制它应该绘制的内容(当不再有延迟时,它会绘制PShape的最新版本)。所以我看了看我的延迟方法,我把它弄得一团糟,但仍然没有正确的结果。有人能给我解释一下为什么PShape没有更新吗

编辑*我收到一个答案,告诉我如何使用noLoop(),我在谷歌上搜索了如何使用它,但似乎找不到正确的放置位置。我尝试了flash方法的第一行,在设置中(但后来我意识到我有没有更新的live按钮)

下面的代码使PShape闪烁两次:

    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;

您需要显示更多的代码(例如
设置
功能),
然而,您的问题似乎源于您可能没有调用
noLoop()

这将导致对象在被处理自动重画覆盖之前闪烁一帧

另一方面,如果您愿意,您可以使用
计时器来处理延迟等事情

或者使用
睡眠

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();

那我就把noLoop放进去好吗;就在所有redraw()函数和结束后的调用loop()之前?@Runeony1否,如果您运行
noloop
,则不应再次运行
loop
,除非您希望擦除所有自定义绘图。好的,我将noloop()放在方法的第一行,在其他任何地方都不调用loop()或noloop()。。。不起作用我已经为你的延迟方法添加了一个重播。看看这对你是否有效。我试着离开并删除redraw()调用,但仍然没有显示任何内容