说实话,我不知道我在做什么错。我想从ClickListener
获取ImageButton
对象,但是出了问题。
public void createButton() {
button = new ImageButton(this.skin);
buttonUnitsList.add(button);
button.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
selectedUnit = buttonUnitsList.indexOf(this.getButton());
}
});
}
event.getTarget()
如果您在演员中有层次结构。
例如,想象您有:
Group Actor <= ImageButton Actor 1 <= Label Actor 1
<= ImageButton Actor 2 <= Label Actor 2
<= ImageButton Actor 3 <= Label Actor 3
您在小组演员上创建一个EventListener。
event.getTarget()
将为您提供精确单击的演员
如果您单击" ImageButton Actor 2"。例如,您可以尝试使用event.getTarget().getParent()
来获取小组演员,但是如果您单击标签演员之一(父母将是相应的ImageButton)
最好的做法是获得由event.getListenerActor()
要获取 Actor
的实例,您需要使用 getTarget()
事件的方法。如果您确定听众仅与按钮一起使用,则可以将其从Actor
升级到Button
selectedUnit = buttonUnitsList.indexOf((Button)event.getTarget());
请注意,如果您将侦听器用于另一种类型的演员,您将获得施法异常