2017-07-28 51 views
0

所以我創建了一個按鈕:做一個可觸摸的ImageButton僅在第一次

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沒有這些功能。

回答

1

ImageButton有一個方法setTouchable(Touchable touchable)繼承自Actor。 「確定觸摸事件如何分發給這位演員,默認爲Touchable.enabled。」

Touchable HASE 3枚舉常量:

  • childrenOnly:沒有觸摸輸入事件將由演員接收,但 孩子仍然會接收事件。

  • disabled:演員或任何
    孩子都不會收到觸摸輸入事件。

  • enabled:所有觸摸輸入事件將由演員和任何 兒童接收。

在第一次觸摸呼叫setTouchable(Touchable.disabled)在那個特定的ImageButton

+0

,謝謝,我已經把上觸setTouchable(Touchable.disabled)和它完美的作品! – Alessandro

0

在課堂級別使用布爾型字段,例如

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; 
    } 
    }); 

如果您有更多然後一個按鈕,你可以考慮使用一個Map<String,Boolean>爲tileId和值。

相關問題