0

我正在尝试在处理中更改 Android 应用程序中的布局,布局只是在 void draw() 中运行的两种不同方法,但程序似乎无法识别我试图在 void 中更改的 currentLayout 值的变化振荡器事件。

当我在 OscEvent 中打印 currentLayout 时,该值会更改并设置为 2,但如果我在 draw() 中打印它,它永远不会改变。所以这就是正在发生的事情:

  • 我可以打印“更改!”
  • 如果我在 OscEvent() 中检查它,currentLayout 的值会发生变化并注意到
  • 如果我在 draw() 中检查它,currentLayout 的值不会改变也不会注意到
  • 当我使用不是来自 OscP5 库的方法时,我还能够成功地更改值和布局,但我不确定这会如何影响任何事情。

代码的重要部分:

public int currentLayout;

void setup() {
  currentLayout=1;//vilken scen man börjar på, kolla switchen i draw()
} 

void draw() {
  switch(currentLayout) {
  case 1:
    defaultLayout();
    break;
  case 2:
    task1();
    break;
  }
 println(currentLayout);
}
void oscEvent(OscMessage theOscMessage) {
  /* get and print the address pattern and the typetag of the received OscMessage */
 String[] list =split(theOscMessage.addrPattern(), '/');
  println(list[1]);
  if (list[1].equals("layout")) {
    println("change!");
    currentLayout=2;
  }
}

感谢所有帮助和建议!谢谢。

4

0 回答 0