我想在不创建阶段的情况下使用clicklisterner。我的代码如下:
ClickListener ck = new ClickListener(
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
handleClick(event);
return super.touchDown(event, x, y, pointer, button);
});
Image button = new Image(buttonTexture);
button.addListerner(ck);
handleClick(Event event){
if(event.getListenerActor==button)
{
System.out.print('pressed');
}
}
除非我使用舞台,否则此代码不起作用。出于好奇,是否有任何可选的clicklistener用法未在声明阶段涉及,以便我可以将代码最小化?
答案 0 :(得分:2)
ClickListener
是一个EventListener
,打算通过scene2d接收事件。
Stage
是输入处理器,用于接收输入事件并在适当的参与者上触发它们。
如果您不想使用Stage(scene2d输入处理器),请使用自己的InputProcessor
或InputAdapter
(只是一个适配器类)。
InputProcessor
用于接收来自键盘和触摸屏(桌面上的鼠标)的输入事件。为此,必须使用Input.setInputProcessor(InputProcessor)
方法进行注册。在调用ApplicationListener.render()
之前的每一帧都会调用它。