所以我创建了一个按钮:
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没有这些功能。
答案 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和值。