La syntaxe de base pour une boucle d'animation?

voix
1

Je sais que jQuery, par exemple, peut faire de l'animation de toutes sortes. Je sais aussi que, au cœur même de l'animation, il me faut une sorte de boucle faire l'animation. Qu'est-ce qu'un exemple d'une telle boucle?

Une réponse complète devrait idéalement répondre aux questions suivantes:

  • Qu'est-ce qu'une syntaxe de base pour une récursion d'animation efficace qui peut animer une propriété unique d'un objet particulier à un moment? La fonction devrait être en mesure de modifier son objet cible et la propriété de l'objet.
  • Quels arguments / paramètres devrait-il prendre?
  • Qu'est-ce qu'une bonne gamme de réitérer la boucle? En millisecondes? (Si cela est un paramètre / argument de la fonction?)

RAPPELLES TOI:

  • La réponse n'est pas nécessairement un langage spécifique, mais si vous écrivez dans une langue spécifique, s'il vous plaît préciser lequel.
  • La gestion des erreurs est un plus. {Rien n'est plus irritant (pour nos besoins) d'une animation qui fait quelque chose d'étrange, comme arrêter à mi-chemin.}

Merci!

Créé 07/03/2010 à 14:52
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

typiquement (pour au moins jQuery) cela ne se fait dans une boucle, mais plutôt une série de rappels.

pseudojavascript:

function startAnimation(element, endPosition, duration) {
    var startPosition = element.position;
    var startTime = getCurrentTime();
    function animate() {
        var timeElapsed = getCurrentTime() - startTime;
        if (timeElapsed > duration) {
            element.position = endPosition;
            stopTimer();
        } else {
            // interpolate based on time
            element.position = startPosition +
                (endPosition - startPosition) * timeElapsed / duration;
        }
    }
    startRepeatingTimerWithCallbackAndInterval(animate, 1.0 / 30.0);
}

Il est également possible d'utiliser des objets pour stocker des données de départ au lieu de la fermeture.

Cela ne répond pas complètement tous les points de la question, mais il est un point de départ.

Créé 08/03/2010 à 20:54
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more