只在第一次使{Image}图像按钮变为可触摸

时间:2017-07-28 12:34:17

标签: java libgdx

所以我创建了一个按钮:

  tile = new ImageButton(up,null,checked);
  tile.setPosition(x, 800);
  tile.setSize(118,200);
  tile.addListener(new InputListener(){
    @Override
    public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
      return true;
    }
  });

现在,每次触摸按钮时,它都会从向上纹理变为已检查图像。但我想要的是纹理改变为检查,只有第一次触摸按钮并变为“不可触及”之后。有没有办法做到这一点? EventListeners没有这些功能。

2 个答案:

答案 0 :(得分:1)

ImageButton有一个从Actor继承的方法setTouchable(Touchable touchable)。 "确定触摸事件如何分配给此actor。默认值为Touchable.enabled。"

Touchable有三个枚举常量:

  • childrenOnly:演员不会收到任何触摸输入事件,但是 孩子们仍然会收到活动。

  • disabled:演员或任何人都不会收到任何触摸输入事件 孩子。

  • enabled:所有触摸输入事件都将由演员和任何人接收 孩子。

在该特定ImageButton上的第一次触摸调用setTouchable(Touchable.disabled)

答案 1 :(得分:0)

在类级别使用布尔字段,例如

getLoader

并在class SomeClass{ private boolean isTileTouched = false; }

中使用它
ClickListener

如果您有多个按钮,可以考虑使用tile.addListener(new InputListener(){ @Override public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { if(isTileTouched) return false; isTileTouched = true; return true; } }); 作为tileId和值。