我想在点击此按钮时更改按钮样式。 这是我的解决方案:
show(){
...
Gdx.input.setInputProcessor(stage);
stage.add(myButton);
}
public void render(float delta){
final boolean buttonSwitch;
myButton.addListener(new ClickListener() {
public void touchUp (InputEvent event, float x, float y, int pointer, int button) {
if(buttonSwitch == true)
{
myButton.setStyle(style1);
}
else
{
myButton.setStyle(style2);
}
}
});
}
问题是有时候我的点击次数会被忽略,样式也不会改变。我必须点击三次或更多次才能得到结果。
答案 0 :(得分:3)
在渲染方法中添加侦听器?为什么!!
从render方法中删除以下代码段并保留在show()
方法
final boolean buttonSwitch;
myButton.addListener(new ClickListener() {
public void touchUp (InputEvent event, float x, float y, int pointer, int button) {
myButton.setStyle(buttonSwitch?style1:style2);
buttonSwitch=!buttonSwitch;
}
});