Я создаю свой собственный класс clickListener.Когда я касаюсь любого актера, зарегистрированного в моем списке щелчков, я хотел бы приостановить все действия с этим актером и отозвать его только тогда, когда активируется триггер.Я пытался с помощью следующих кодов, но это дает мне полное зависание каждый раз, когда я запускаю TouchUp.
public class MyClickListener extends ClickListener {
public Actor actor;
Array<Action> cachedActions;
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
super.touchUp(event, x, y, pointer, button);
actor = event.getListenerActor();
actor.addAction(btnScaleBackActions());
for(Action a: cachedActions)
{
a.reset();
a.setTarget(actor);
a.setActor(actor);
actor.addAction(a); //this line give me a total hang
}
}
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
if(pointer==0) // avoid further trigger on other buttons while holding the selected actor
{
actor = event.getListenerActor();
actor.setScale(0.9f);
cachedActions = actor.getActions();
actor.clearActions();
if(autoSetSound)AudioManager.playSound(AudioManager.CLICK_IN);
return super.touchDown(event, x, y, pointer, button);
}
else
{
return false;
}
}
public static Action btnScaleBackActions(){
float time = 0.1f;
return sequence(
scaleTo(1,1,time ),
scaleTo(0.95f,0.95f,time/4),
scaleTo(1,1,time/4)
);
}
}
Он не показывает ошибки, но только белый экран.Любая помощь?