No pude encontrar una manera de verificar si una Acción especial (paralela a algunas otras sobre el mismo actor) ha terminado. Algo como una interfaz Action.OnCompletionListener como Music.OnCompletionListener sería realmente agradable.
Acción a = Acciones.fadeOut(10);
a.setOnCompletionListener(nueva Acción.OnCompletionListener() {
//hacer algo.
})
¿Hay alguna razón especial por la que no haya nada como esto integrado?
Puedes usar:
sequence(someAction, new Action() {
public boolean act (float delta) {
// This runs when someAction is done.
return true;
}
});
// OR, one line of code less:
sequence(someAction, run(new Runnable() {
public void run () {
// This runs when someAction is done.
}
}));
No puedo pensar en un escenario en el que un oyente de finalización sea más útil.
¡Oh, bueno, eso es bueno! Muchas gracias. No sabía que puedes integrar tus propias Acciones tan fácilmente.
Por cierto, ¿podría explicarme qué hace un AfterAction (Actions.after(Action))? No pude averiguar qué. Tropecé con él mientras buscaba un método de escucha.
Sí, la idea general con las acciones es que puedes escribir las tuyas fácilmente. :)
AfterAction "Ejecuta una acción solo después de que hayan finalizado todas las demás acciones en el actor en el momento en que se agregó esta acción". Entonces agrega la acción y no se completa hasta que se completan todas las demás acciones. Puede usar esto para bloquear una secuencia para hacer que las cosas sucedan después de otras cosas.
CountdownEventAction es otra forma de controlar que las acciones sucedan después de otras cosas. Vea este hilo y la publicación de blog vinculada desde allí:
http://www.badlogicgames.com/forum/viewtopic.php?t=12322&p=56104
Comentario más útil
Puedes usar:
No puedo pensar en un escenario en el que un oyente de finalización sea más útil.