Libgdx: Action.OnCompletionListenerAction.OnCompletionListener

Créé le 14 févr. 2014  ·  3Commentaires  ·  Source: libgdx/libgdx

Je n'ai pas trouvé de moyen de vérifier si une action spéciale (parallèle à d'autres sur le même acteur) est terminée. Quelque chose comme une interface Action.OnCompletionListener comme Music.OnCompletionListener serait vraiment sympa.

Action a = Actions.fadeOut(10);
a.setOnCompletionListener(new Action.OnCompletionListener() {
//faire quelque chose.
})

Y a-t-il une raison particulière pour laquelle rien de tel n'est intégré ?

Commentaire le plus utile

Vous pouvez utiliser:

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.
    }
}));

Je ne peux pas penser à un scénario où un écouteur d'achèvement serait plus utile.

Tous les 3 commentaires

Vous pouvez utiliser:

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.
    }
}));

Je ne peux pas penser à un scénario où un écouteur d'achèvement serait plus utile.

Eh bien, c'est bon ! Merci beaucoup. Je ne savais pas que vous pouvez intégrer vos propres actions si facilement.

Au fait, pourriez-vous m'expliquer ce que fait une AfterAction (Actions.after(Action)) ? Je ne pouvais pas comprendre quoi. Je suis tombé dessus en cherchant une méthode d'écoute.

Oui, l'idée avec les actions est que vous pouvez facilement écrire les vôtres. :)

AfterAction "Exécute une action uniquement après que toutes les autres actions sur l'acteur au moment où cette action a été ajoutée sont terminées." Donc, vous ajoutez l'action et elle ne se termine pas tant que toutes les autres actions ne sont pas terminées. Vous pouvez l'utiliser pour bloquer une séquence afin que les choses se produisent après d'autres choses.

CountdownEventAction est un autre moyen de contrôler que des actions se produisent après d'autres choses. Voir ce fil et le billet de blog lié à partir de là :
http://www.badlogicgames.com/forum/viewtopic.php?t=12322&p=56104

Cette page vous a été utile?
0 / 5 - 0 notes