Sintaxa de bază pentru o buclă de animație?

voturi
1

Știu că jQuery, de exemplu, poate face animație de soiuri. Știu, de asemenea, că chiar în centrul de animație, trebuie să-mi un fel de buclă a face animație. Ce este un exemplu de o astfel de buclă?

Un răspuns complet ar trebui să răspundă în mod ideal la următoarele întrebări:

  • Ce este o sintaxă de bază pentru o recursivitate de animație eficient, care poate anima o singură proprietate a unui anumit obiect la un moment dat? Funcția ar trebui să poată să varieze obiectul țintă și proprietate a obiectului.
  • Ce argumente / parametri ar trebui să-l ia?
  • Ce este o bună gamă de reiterând bucla? În milisecunde? (Ar trebui să fie acesta un parametru / argument pentru funcția?)

TINE MINTE:

  • Răspunsul nu este în mod necesar limbaj specific, dar dacă scrieți într-o anumită limbă, vă rugăm să specificați pe care.
  • Eroare de manipulare este un plus. {Nimic nu este mai iritant (pentru scopurile noastre) decât o animație care face ceva ciudat, cum ar fi oprirea la jumătatea.}

Mulțumiri!

Întrebat 07/03/2010 la 14:52
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
1

în mod tipic (pentru jQuery cel puțin) acest lucru nu este realizat într-o buclă, ci mai degrabă într-o serie de callback.

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

Este de asemenea posibil să se utilizeze obiecte pentru a stoca date de pornire în loc de închidere.

Acest lucru nu răspunde complet toate punctele în întrebare, dar este un punct de plecare.

Publicat 08/03/2010 la 20:54
sursa de către utilizator

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