2015-09-10 2 views
3

Я хотел знать, как вы можете обнаружить событие касания на столе. Хотя я пробовал использовать inputlistener. Но это только придает мне прикосновение к элементам. Но вместо этого я хочу, чтобы прикосновение обнаруживалось повсюду на столе. Короче говоря, я хочу, чтобы мой стол был повернут как кнопка.Libgdx Scene2d: прослушиватель событий в таблице

+0

Вы всегда должны добавлять Java в качестве тега, если вы ожидаете, что код java будет предоставлен, поэтому подсветка кода для java-работ. – Madmenyo

ответ

6

Вы можете добавить слушателя к любому актеру на сцене. В вашем случае я бы предложил ClickListener. Вы можете добавить ClickListener как «анонимный класс», как я сделал ниже. Переопределите метод clicked с вашей логикой, вы можете избавиться от вызова до .super, поскольку базовый метод ничего не делает. У вас есть доступ к конкретным сведениям в InputEvent, который поставляется, например, при нажатии кнопки.

Table table = new Table(); 
    //Might just be this line to have the table interact. 
    table.setTouchable(Touchable.enabled); 
    t.addListener(new ClickListener(){ 
     @Override 
     public void clicked(InputEvent event, float x, float y) { 
      System.out.println("I got clicked!"); 
     } 
    }); 

Конечно, ваш стол необходимо развернуть, чтобы его щелкнуть. Если вы не можете щелкнуть по нему, вы должны запустить table.debug() и убедиться, что вы видите границы таблицы на экране и щелкните по ним.

+0

Еще раз спасибо !! Я сделал то же самое. Фактически я понял, что вам нужно установить логическое значение, но новая проблема заключается в том, что эта конкретная таблица находится в разделенной области. И когда я прокручиваю панель, сенсорное нажатие активируется. Итак, теперь lemme найдет для этого решение. – uday

+0

Вместо 'clicked' вы можете попробовать переопределить @touchUp внутри' Listener'. Но это может привести к щелчку таблицы при ее выпуске. Так что вы можете сделать, когда вы перетаскиваете, вы удаляете слушателя из таблицы. Сначала 'table.getListeners', а затем повторите эти прослушиватели и удалите их из своей таблицы. Но вы должны добавить их снова, когда вы прекратите прокрутку. – Madmenyo

+0

жаль, что таблица находится в области прокрутки – uday

Смежные вопросы