在库方法中更改全局变量时,我无法更改它的值

时间:2013-02-26 18:42:18

标签: java android processing osc

我正在尝试在Processing中改变Android应用程序中的布局,布局只是在void draw()中运行的两种不同的方法,但程序似乎无法识别我正在尝试的currentLayout值的更改改变无效的OscEvent。

当我在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;
  }
}

所有帮助和建议表示赞赏! 感谢。

0 个答案:

没有答案